Move #include from h/mh.h to source files
[mmh] / uip / repl.c
index d847840..a5864c1 100644 (file)
 #include <h/fmt_scan.h>
 #include <sys/file.h>  /* L_SET */
 #include <errno.h>
-
+#include <unistd.h>
+#include <ctype.h>
+#include <sys/stat.h>
+#include <locale.h>
 
 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
@@ -143,9 +146,7 @@ main(int argc, char **argv)
 
        filter = getcpy(etcpath(mhlreply));
 
-#ifdef LOCALE
        setlocale(LC_ALL, "");
-#endif
        invo_name = mhbasename(argv[0]);
 
        /* read user profile/context */
@@ -159,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++;
@@ -317,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)
@@ -346,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;
 }
 
@@ -358,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);
 
@@ -575,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");
                }
        }
@@ -773,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;
        }