Initialize vecp in send anno()
[mmh] / uip / send.c
index 3c2db0e..ed6b08d 100644 (file)
@@ -237,8 +237,7 @@ main(int argc, char **argv)
 static int
 sendsbr(char **vec, int vecp, char *drft, struct stat *st)
 {
-       int status;
-       char buffer[BUFSIZ];
+       int status, dupfd;
        char *original_draft;
 
        /*
@@ -295,12 +294,16 @@ sendsbr(char **vec, int vecp, char *drft, struct stat *st)
                status = sendaux(vec, vecp, drft, st) ? NOTOK : OK;
                if (status == OK) {
                        /* move original draft to +trash folder */
-                       snprintf(buffer, sizeof buffer,
-                                       "</dev/null refile -file %s +trash",
-                                       original_draft);
-                       if (system(buffer) != 0) {
+                       /* temporary close stdin, for refile not to ask */
+                       dupfd = dup(0);
+                       close(0);
+                       if (execprogl("refile", "refile", "-file",
+                                       original_draft, "+trash",
+                                       (char *)NULL) != 0) {
                                advise(NULL, "unable to trash the draft");
                        }
+                       dup2(dupfd, 0);
+                       close(dupfd);
                }
                break;
 
@@ -675,7 +678,7 @@ anno(struct stat *st)
        char *msgs, *folder;
        char buf[BUFSIZ];
        char *vec[MAXARGS];
-       int vecp;
+       int vecp = 0;
        char *cp, *dp;
 
        if (altmsg && (stat(altmsg, &st2) == NOTOK ||