X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Frepl.c;h=a5864c11debf0f41e0bf2e4d74befa27aa3b41a6;hp=4523365e78d069d1267869d31d8d55a418bbefd8;hb=2abb9a7cfb0930e27062088734d306e7d78e4cc2;hpb=75fca31a5b9d5c1a99c74ab14c94438d8852fba9 diff --git a/uip/repl.c b/uip/repl.c index 4523365..a5864c1 100644 --- a/uip/repl.c +++ b/uip/repl.c @@ -12,49 +12,50 @@ #include #include /* L_SET */ #include - +#include +#include +#include +#include static struct swit switches[] = { #define GROUPSW 0 { "group", 0 }, #define NGROUPSW 1 - { "nogroup", 0 }, + { "nogroup", 2 }, #define ANNOSW 2 { "annotate", 0 }, #define NANNOSW 3 - { "noannotate", 0 }, + { "noannotate", 2 }, #define CCSW 4 { "cc all|to|cc|me", 0 }, #define NCCSW 5 - { "nocc type", 0 }, + { "nocc type", 2 }, #define EDITRSW 6 { "editor editor", 0 }, #define FILTSW 7 { "filter filterfile", 0 }, #define NFILTSW 8 - { "nofilter", 0 }, + { "nofilter", 2 }, #define FORMSW 9 { "form formfile", 0 }, #define MIMESW 10 { "mime", 0 }, #define NMIMESW 11 - { "nomime", 0 }, + { "nomime", 2 }, #define QURYSW 12 { "query", 0 }, #define NQURYSW 13 - { "noquery", 0 }, + { "noquery", 2 }, #define WHATSW 14 { "whatnowproc program", 0 }, #define VERSIONSW 15 - { "version", 0 }, + { "Version", 0 }, #define HELPSW 16 { "help", 0 }, #define FILESW 17 { "file file", 4 }, /* interface from msh */ -#ifdef MHE -# define BILDSW 18 +#define BILDSW 18 { "build", 5 }, /* interface from mhe */ -#endif { NULL, 0 } }; @@ -141,16 +142,11 @@ main(int argc, char **argv) char **argp, **arguments; struct msgs *mp = NULL; FILE *in; - -#ifdef MHE int buildsw = 0; -#endif /* MHE */ filter = getcpy(etcpath(mhlreply)); -#ifdef LOCALE setlocale(LC_ALL, ""); -#endif invo_name = mhbasename(argv[0]); /* read user profile/context */ @@ -164,17 +160,17 @@ main(int argc, char **argv) switch (smatch(++cp, switches)) { case AMBIGSW: ambigsw(cp, switches); - done(1); + exit(1); case UNKWNSW: adios(NULL, "-%s unknown", cp); case HELPSW: snprintf(buf, sizeof(buf), "%s: [+folder] [msg] [switches]", invo_name); print_help(buf, switches, 1); - done(0); + exit(0); case VERSIONSW: print_version(invo_name); - done(1); + exit(0); case GROUPSW: groupreply++; @@ -215,11 +211,10 @@ main(int argc, char **argv) adios(NULL, "missing argument to %s", argp[-2]); continue; -#ifdef MHE + case BILDSW: - buildsw++; /* fall... */ + buildsw++; continue; -#endif /* MHE */ case FILESW: if (file) @@ -286,12 +281,14 @@ main(int argc, char **argv) if (file && (msg || folder)) adios(NULL, "can't mix files and folders/msgs"); -#ifdef MHE - strncpy(drft, buildsw ? toabsdir("reply") - : m_draft(seq_beyond), sizeof(drft)); -#else - strncpy(drft, m_draft(seq_beyond), sizeof(drft)); -#endif /* MHE */ + strncpy(drft, buildsw ? toabsdir("reply") : m_draft(seq_beyond), + sizeof(drft)); + /* + ** FIXME: (concerning MHE support (buildsw) only) + ** There's no check if the draft already exists. mmh has removed + ** this case by having the draft folder. I won't add code only to + ** handle this legacy issue for MHE. -- meillo@marmaro.de 2012-05 + */ if (file) { /* @@ -321,7 +318,8 @@ main(int argc, char **argv) /* parse the message range/sequence/name and set SELECTED */ if (!m_convert(mp, msg)) - done(1); + /* sysexits.h EX_USAGE */ + exit(1); seq_setprev(mp); /* set the previous-sequence */ if (mp->numsel > 1) @@ -350,9 +348,9 @@ main(int argc, char **argv) fclose(in); if (buildsw) - done(0); + exit(0); what_now(ed, NOUSE, drft, msg, 0, mp, anot ? "Replied" : NULL, cwd); - done(1); + /* sysexits.h EX_SOFTWARE */ return 1; } @@ -362,7 +360,7 @@ docc(char *cp, int ccflag) switch (smatch(cp, ccswitches)) { case AMBIGSW: ambigsw(cp, ccswitches); - done(1); + exit(1); case UNKWNSW: adios(NULL, "-%scc %s unknown", ccflag ? "" : "no", cp); @@ -579,11 +577,11 @@ finished: /* add an attachment header */ char buffer[BUFSIZ]; - snprintf(buffer, sizeof buffer, "anno -append -nodate '%s' " - "-comp '%s' -text '+%s %s'", - drft, - attach_hdr, mp->foldpath, m_name(mp->lowsel)); - if (system(buffer) != 0) { + snprintf(buffer, sizeof buffer, "+%s %s", + mp->foldpath, m_name(mp->lowsel)); + if (execprogl("anno", "anno", "-append", "-nodate", + drft, "-comp", attach_hdr, "-text", buffer, + (char *)NULL) != 0) { advise(NULL, "unable to add attachment header"); } } @@ -777,7 +775,8 @@ replfilter(FILE *in, FILE *out, char *filter) default: if (pidXwait(pid, "mhl")) - done(1); + /* sysexits.h EX_SOFTWARE */ + exit(1); fseek(out, 0L, SEEK_END); break; }