Move #include from h/mh.h to source files
[mmh] / uip / whatnow.c
index fbc8582..cd72e44 100644 (file)
 #include <signal.h>
 #include <h/mime.h>
 #include <h/utils.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <locale.h>
+
+#ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
 
 static struct swit switches[] = {
 #define EDITRSW  0
@@ -518,9 +525,9 @@ editfile(char **ed, char **arg, char *file, int use)
        case OK:
                vecp = 0;
                vec[vecp++] = mhbasename(*ed);
-               if (arg)
-                       while (*arg)
-                               vec[vecp++] = *arg++;
+               while (arg && *arg) {
+                       vec[vecp++] = *arg++;
+               }
                vec[vecp++] = file;
                vec[vecp] = NULL;
 
@@ -566,36 +573,22 @@ editfile(char **ed, char **arg, char *file, int use)
 static int
 sendfile(char **arg, char *file)
 {
-       pid_t child_id;
-       int vecp;
+       int vecp = 0;
        char *vec[MAXARGS];
 
-       context_save();  /* save the context file */
+       context_save();
        fflush(stdout);
 
-       switch (child_id = fork()) {
-       case NOTOK:
-               advise(NULL, "unable to fork, so sending directly...");
-               /* fall */
-       case OK:
-               vecp = 0;
-               vec[vecp++] = "send";
-               if (arg)
-                       while (*arg)
-                               vec[vecp++] = *arg++;
-               vec[vecp++] = file;
-               vec[vecp] = NULL;
-
-               execvp("send", vec);
-               fprintf(stderr, "%s: unable to exec ", invo_name);
-               perror("send");
-               _exit(-1);
-
-       default:
-               if (pidwait(child_id, OK) == 0)
-                       exit(0);
-               return 1;
+       vec[vecp++] = "send";
+       while (arg && *arg) {
+               vec[vecp++] = *arg++;
        }
+       vec[vecp++] = file;
+       vec[vecp] = NULL;
+       execvp(*vec, vec);
+       fprintf(stderr, "%s: unable to exec ", invo_name);
+       perror("send");
+       _exit(-1);
 }
 
 
@@ -605,11 +598,9 @@ sendfile(char **arg, char *file)
 static int
 refile(char **arg, char *file)
 {
-       pid_t pid;
-       register int vecp;
+       int vecp = 0;
        char *vec[MAXARGS];
 
-       vecp = 0;
        vec[vecp++] = "refile";
        vec[vecp++] = "-nolink";  /* override bad .mh_profile defaults */
        vec[vecp++] = "-file";
@@ -620,23 +611,10 @@ refile(char **arg, char *file)
        }
        vec[vecp] = NULL;
 
-       context_save();  /* save the context file */
+       context_save();
        fflush(stdout);
 
-       switch (pid = fork()) {
-       case -1:
-               advise("fork", "unable to");
-               return -1;
-
-       case 0:
-               execvp(*vec, vec);
-               fprintf(stderr, "%s: unable to exec ", invo_name);
-               perror(*vec);
-               _exit(-1);
-
-       default:
-               return (pidwait(pid, -1));
-       }
+       return execprog(*vec, vec);
 }