X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6c42153ad9362cc676ea66563bf400d7511b3b68..28ebf6bb835e9954c0f959b56c8abac2bf3decd5:/sbr/getarguments.c?ds=sidebyside diff --git a/sbr/getarguments.c b/sbr/getarguments.c index 89b57c19..1ab11634 100644 --- a/sbr/getarguments.c +++ b/sbr/getarguments.c @@ -1,27 +1,27 @@ - -/* - * getarguments.c -- Get the argument vector ready to go. - * - * $Id$ +/* 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 "h/mh.h" +#include "getarguments.h" +#include "context_find.h" +#include "brkstring.h" +#include "h/utils.h" char ** getarguments (char *invo_name, int argc, char **argv, int check_context) { - char *cp, **ap, **bp, **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 = getcpy (cp); /* make copy */ + cp = mh_xstrdup(cp); /* make copy */ ap = brkstring (cp, " ", "\n"); /* split string */ /* Count number of arguments split */ @@ -30,12 +30,11 @@ getarguments (char *invo_name, int argc, char **argv, int check_context) n++; } - if (!(arguments = (char **) malloc ((argc + n) * sizeof(*arguments)))) - adios (NULL, "unable to malloc argument storage"); + arguments = mh_xmalloc ((argc + n) * sizeof(*arguments)); bp = arguments; /* Copy any arguments from profile/context */ - if (n > 0) { + if (ap != NULL && n > 0) { while (*ap) *bp++ = *ap++; }