Added support for optional Content_Disposition header in mhbuild directive.s
[mmh] / sbr / getarguments.c
1
2 /*
3  * getarguments.c -- Get the argument vector ready to go.
4  *
5  * $Id$
6  *
7  * This code is Copyright (c) 2002, by the authors of nmh.  See the
8  * COPYRIGHT file in the root directory of the nmh distribution for
9  * complete copyright information.
10  */
11
12 #include <h/mh.h>
13 #include <h/utils.h>
14
15 char **
16 getarguments (char *invo_name, int argc, char **argv, int check_context)
17 {
18     char *cp, **ap, **bp, **arguments;
19     int n = 0;
20
21     /*
22      * Check if profile/context specifies any arguments
23      */
24     if (check_context && (cp = context_find (invo_name))) {
25         cp = getcpy (cp);               /* make copy    */
26         ap = brkstring (cp, " ", "\n"); /* split string */
27
28         /* Count number of arguments split */
29         bp = ap;
30         while (*bp++)
31             n++;
32     }
33
34     arguments = (char **) mh_xmalloc ((argc + n) * sizeof(*arguments));
35     bp = arguments;
36
37     /* Copy any arguments from profile/context */
38     if (n > 0) {
39         while (*ap)
40             *bp++ = *ap++;
41      }
42
43     /* Copy arguments from command line */
44     argv++;
45     while (*argv)
46         *bp++ = *argv++;
47
48     /* Now NULL terminate the array */
49     *bp = NULL;
50
51     return arguments;
52 }