]> diplodocus.org Git - nmh/blobdiff - sbr/arglist.c
- Fixed bcc to work with sendmail/pipe [Bug 55700].
[nmh] / sbr / arglist.c
index 59d311b210d1b1a8ade66885bfccb2554fb26ffe..f771155a440dbd444f35089e1e410a687fa3962a 100644 (file)
@@ -5,8 +5,12 @@
  * complete copyright information.
  */
 
  * complete copyright information.
  */
 
-#include <h/mh.h>
-#include <h/utils.h>
+#include "h/mh.h"
+#include "r1bindex.h"
+#include "brkstring.h"
+#include "error.h"
+#include "arglist.h"
+#include "h/utils.h"
 
 /*
  * Split up a command into an appropriate array to pass to execvp()
 
 /*
  * Split up a command into an appropriate array to pass to execvp()
@@ -39,25 +43,27 @@ char **
 argsplit(char *command, char **file, int *argp)
 {
     char **argvarray, *p;
 argsplit(char *command, char **file, int *argp)
 {
     char **argvarray, *p;
-    int space = 0, metachar = 0, i;
+    int i;
 
 
+    bool space = false;
+    bool metachar = false;
     for (p = command; *p; p++) {
     for (p = command; *p; p++) {
-       if (*p == ' ' || *p == '\t') {
-               space = 1;
+       if (*p == ' ' || *p == '\t') {
+               space = true;
        } else if (strchr(METACHARS, *p)) {
        } else if (strchr(METACHARS, *p)) {
-               metachar = 1;
+               metachar = true;
                break;
        }
     }
 
                break;
        }
     }
 
-    argvarray = (char **)mh_xmalloc(sizeof *argvarray * (MAXARGS + 5));
+    argvarray = mh_xmalloc(sizeof *argvarray * (MAXARGS + 5));
 
     /*
      * The simple case - no spaces or shell metacharacters
      */
 
     if (!space && !metachar) {
 
     /*
      * The simple case - no spaces or shell metacharacters
      */
 
     if (!space && !metachar) {
-       argvarray[0] = getcpy(r1bindex(command, '/'));
+       argvarray[0] = mh_xstrdup(r1bindex(command, '/'));
        argvarray[1] = NULL;
        *file = mh_xstrdup(command);
        if (argp)
        argvarray[1] = NULL;
        *file = mh_xstrdup(command);
        if (argp)
@@ -71,16 +77,16 @@ argsplit(char *command, char **file, int *argp)
      */
 
     if (space && !metachar) {
      */
 
     if (space && !metachar) {
-       char **split;
+       char **split;
        p = mh_xstrdup(command);
        split = brkstring(p, " \t", NULL);
        if (split[0] == NULL) {
        p = mh_xstrdup(command);
        split = brkstring(p, " \t", NULL);
        if (split[0] == NULL) {
-           adios(NULL, "Invalid blank command found");
+           die("Invalid blank command found");
        }
        argvarray[0] = mh_xstrdup(r1bindex(split[0], '/'));
        for (i = 1; split[i] != NULL; i++) {
            if (i > MAXARGS) {
        }
        argvarray[0] = mh_xstrdup(r1bindex(split[0], '/'));
        for (i = 1; split[i] != NULL; i++) {
            if (i > MAXARGS) {
-               adios(NULL, "Command exceeded argument limit");
+               die("Command exceeded argument limit");
            }
            argvarray[i] = mh_xstrdup(split[i]);
        }
            }
            argvarray[i] = mh_xstrdup(split[i]);
        }
@@ -117,7 +123,7 @@ argsplit(char *command, char **file, int *argp)
     argvarray[4] = NULL;
 
     if (argp)
     argvarray[4] = NULL;
 
     if (argp)
-       *argp = 4;
+       *argp = 4;
 
     return argvarray;
 }
 
     return argvarray;
 }
@@ -134,7 +140,7 @@ arglist_free(char *command, char **argvarray)
     free(command);
 
     if (argvarray != NULL) {
     free(command);
 
     if (argvarray != NULL) {
-       for (i = 0; argvarray[i] != NULL; i++)
+       for (i = 0; argvarray[i] != NULL; i++)
            free(argvarray[i]);
        free(argvarray);
     }
            free(argvarray[i]);
        free(argvarray);
     }
@@ -166,7 +172,7 @@ argsplit_msgarg(struct msgs_array *msgs, char *command, char **program)
      */
 
     for (i = 0; i < argp; i++) {
      */
 
     for (i = 0; i < argp; i++) {
-       app_msgarg(msgs, vec[i]);
+       app_msgarg(msgs, vec[i]);
     }
 
     free(vec);
     }
 
     free(vec);
@@ -204,7 +210,7 @@ argsplit_insert(struct msgs_array *msgs, char *command, char **program)
     }
 
     for (i = msgs->size - 1; i >= 0; i--)
     }
 
     for (i = msgs->size - 1; i >= 0; i--)
-       msgs->msgs[i + argp] = msgs->msgs[i];
+       msgs->msgs[i + argp] = msgs->msgs[i];
 
     msgs->size += argp;
 
 
     msgs->size += argp;
 
@@ -213,7 +219,7 @@ argsplit_insert(struct msgs_array *msgs, char *command, char **program)
      */
 
     for (i = 0; i < argp; i++)
      */
 
     for (i = 0; i < argp; i++)
-       msgs->msgs[i] = vec[i];
+       msgs->msgs[i] = vec[i];
 
     free(vec);
 }
 
     free(vec);
 }