X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fgetarguments.c;h=e8da9849b8eaad0b25b63068c721f97d080a8996;hp=0f8834b7bdacd0c9d2b3fd1117f8c02b25d2ab56;hb=a4ff68e851c0931ced437f73a1acb0fedb28bec3;hpb=5dd6771b28c257af405d7248639ed0e3bcdce38b diff --git a/sbr/getarguments.c b/sbr/getarguments.c index 0f8834b..e8da984 100644 --- a/sbr/getarguments.c +++ b/sbr/getarguments.c @@ -1,50 +1,49 @@ - /* - * getarguments.c -- Get the argument vector ready to go. - * - * This code is Copyright (c) 2002, by the authors of nmh. See the - * COPYRIGHT file in the root directory of the nmh distribution for - * complete copyright information. - */ +** getarguments.c -- Get the argument vector ready to go. +** +** This code is Copyright (c) 2002, by the authors of nmh. See the +** COPYRIGHT file in the root directory of the nmh distribution for +** complete copyright information. +*/ #include #include char ** -getarguments (char *invo_name, int argc, char **argv, int check_context) +getarguments(char *invo_name, int argc, char **argv, int check_context) { - char *cp = NULL, **ap = NULL, **bp = NULL, **arguments = NULL; - int n = 0; - - /* - * Check if profile/context specifies any arguments - */ - if (check_context && (cp = context_find (invo_name))) { - cp = getcpy (cp); /* make copy */ - ap = brkstring (cp, " ", "\n"); /* split string */ - - /* Count number of arguments split */ - bp = ap; - while (*bp++) - n++; - } - - arguments = (char **) mh_xmalloc ((argc + n) * sizeof(*arguments)); - bp = arguments; - - /* Copy any arguments from profile/context */ - if (ap != NULL && n > 0) { - while (*ap) - *bp++ = *ap++; - } - - /* Copy arguments from command line */ - argv++; - while (*argv) - *bp++ = *argv++; - - /* Now NULL terminate the array */ - *bp = NULL; - - return arguments; + char *cp = NULL, **ap = NULL, **bp = NULL, **arguments = NULL; + int n = 0; + + /* + ** Check if profile/context specifies any arguments + */ + if (check_context && (cp = context_find(invo_name))) { + cp = mh_xstrdup(cp); /* make copy */ + ap = brkstring(cp, " ", "\n"); /* split string */ + + /* Count number of arguments split */ + bp = ap; + while (*bp++) + n++; + } + + arguments = mh_xcalloc(argc + n, sizeof(*arguments)); + bp = arguments; + + /* Copy any arguments from profile/context */ + if (ap != NULL && n > 0) { + while (*ap) + *bp++ = *ap++; + } + + /* Copy arguments from command line */ + argv++; + while (*argv) + *bp++ = *argv++; + + /* Now NULL terminate the array */ + *bp = NULL; + + return arguments; }