X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fgetarguments.c;h=e8da9849b8eaad0b25b63068c721f97d080a8996;hp=55fd06e5044566e6a5ebda6f62af8f368402acab;hb=31750e8a12eafcd1b8fa81cb12b988e680254f24;hpb=2f689a1cb907a5de04e6d39ffd217a69af3216c7 diff --git a/sbr/getarguments.c b/sbr/getarguments.c index 55fd06e..e8da984 100644 --- a/sbr/getarguments.c +++ b/sbr/getarguments.c @@ -1,52 +1,49 @@ - /* - * getarguments.c -- Get the argument vector ready to go. - * - * $Id$ - * - * 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; }