X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Frepl.c;h=e5fbc0ffaf8bb7f79a38ff3524e86046ee8bb4a6;hp=3c9e483da71aff64e52f580fafbcb2086c4396c0;hb=8bf8e1e29df17658c3d77629e17f88bf9159e21b;hpb=5f08476e3bc5c134ce57d924b01d1c1fcacd53db diff --git a/uip/repl.c b/uip/repl.c index 3c9e483..e5fbc0f 100644 --- a/uip/repl.c +++ b/uip/repl.c @@ -18,49 +18,41 @@ 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 NEDITSW 7 - { "noedit", 0 }, -#define FILTSW 8 +#define FILTSW 7 { "filter filterfile", 0 }, -#define NFILTSW 9 - { "nofilter", 0 }, -#define FORMSW 10 +#define NFILTSW 8 + { "nofilter", 2 }, +#define FORMSW 9 { "form formfile", 0 }, -#define MIMESW 11 +#define MIMESW 10 { "mime", 0 }, -#define NMIMESW 12 - { "nomime", 0 }, -#define QURYSW 13 +#define NMIMESW 11 + { "nomime", 2 }, +#define QURYSW 12 { "query", 0 }, -#define NQURYSW 14 - { "noquery", 0 }, -#define WHATSW 15 +#define NQURYSW 13 + { "noquery", 2 }, +#define WHATSW 14 { "whatnowproc program", 0 }, -#define NWHATSW 16 - { "nowhatnowproc", 0 }, -#define VERSIONSW 17 - { "version", 0 }, -#define HELPSW 18 +#define VERSIONSW 15 + { "Version", 0 }, +#define HELPSW 16 { "help", 0 }, -#define FILESW 19 +#define FILESW 17 { "file file", 4 }, /* interface from msh */ - -#ifdef MHE -#define BILDSW 20 +#define BILDSW 18 { "build", 5 }, /* interface from mhe */ -#endif - { NULL, 0 } }; @@ -101,7 +93,7 @@ static int dftype=0; static char *badaddrs = NULL; static char *dfhost = NULL; -static struct mailname mq = { NULL }; +static struct mailname mq; static struct format *fmt; @@ -133,7 +125,7 @@ static char *addrcomps[] = { static void docc(char *, int); static int insert(struct mailname *); static void replfilter(FILE *, FILE *, char *); -static void replout(FILE *, char *, char *, struct msgs *, int, +static void replout(FILE *, char *, struct msgs *, int, char *, char *); @@ -141,23 +133,17 @@ int main(int argc, char **argv) { int anot = 0; - int nedit = 0, nwhat = 0; char *cp, *cwd, *maildir, *file = NULL; char *folder = NULL, *msg = NULL; char *ed = NULL, drft[BUFSIZ], buf[BUFSIZ]; 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 */ @@ -214,10 +200,6 @@ main(int argc, char **argv) if (!(ed = *argp++) || *ed == '-') adios(NULL, "missing argument to %s", argp[-2]); - nedit = 0; - continue; - case NEDITSW: - nedit++; continue; case WHATSW: @@ -225,14 +207,10 @@ main(int argc, char **argv) *whatnowproc == '-') adios(NULL, "missing argument to %s", argp[-2]); - nwhat = 0; continue; -#ifdef MHE + case BILDSW: - buildsw++; /* fall... */ -#endif /* MHE */ - case NWHATSW: - nwhat++; + buildsw++; continue; case FILESW: @@ -300,12 +278,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) { /* @@ -360,13 +340,12 @@ main(int argc, char **argv) form = etcpath(replcomps); } - replout(in, msg, drft, mp, mime, form, filter); + replout(in, drft, mp, mime, form, filter); fclose(in); - if (nwhat) + if (buildsw) done(0); - what_now(ed, nedit, NOUSE, drft, msg, 0, mp, anot ? "Replied" : NULL, - cwd); + what_now(ed, NOUSE, drft, msg, 0, mp, anot ? "Replied" : NULL, cwd); done(1); return 1; } @@ -403,7 +382,7 @@ docc(char *cp, int ccflag) static void -replout(FILE *inb, char *msg, char *drft, struct msgs *mp, +replout(FILE *inb, char *drft, struct msgs *mp, int mime, char *form, char *filter) { register int state, i; @@ -594,11 +573,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"); } } @@ -745,15 +724,9 @@ insert(struct mailname *np) snprintf(buffer, sizeof(buffer), "Reply to %s? ", adrformat(np)); if (!gans(buffer, anoyes)) - return 0; + return 0; } mp->m_next = np; - -#ifdef ISI - if (ismymbox(np)) - ccme = 0; -#endif - return 1; }