summaryrefslogtreecommitdiffstats
path: root/contrib/cvs/src/prepend_args.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-09-02 06:09:03 +0000
committerpeter <peter@FreeBSD.org>2002-09-02 06:09:03 +0000
commita34725cd3a8ece4a0cc91f1fa265f0cd02c2c37e (patch)
tree5b89c7f1cbf0395ac411683e8e29e8e6f66d8bee /contrib/cvs/src/prepend_args.c
parentca4ebacf48c51b362114adac3bc6a49d7ee99719 (diff)
downloadFreeBSD-src-a34725cd3a8ece4a0cc91f1fa265f0cd02c2c37e.zip
FreeBSD-src-a34725cd3a8ece4a0cc91f1fa265f0cd02c2c37e.tar.gz
Repo copy these files to the bmake area, these are not part of the
cvs vendor release and should not have been 'cvs add'ed there in the first place.
Diffstat (limited to 'contrib/cvs/src/prepend_args.c')
-rw-r--r--contrib/cvs/src/prepend_args.c86
1 files changed, 0 insertions, 86 deletions
diff --git a/contrib/cvs/src/prepend_args.c b/contrib/cvs/src/prepend_args.c
deleted file mode 100644
index 12322ce..0000000
--- a/contrib/cvs/src/prepend_args.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* prepend_args.c - utilility programs for manpiulating argv[]
- Copyright (C) 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
-
-/* $FreeBSD$ */
-
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "cvs.h"
-#include "prepend_args.h"
-
-
-/* Find the white-space-separated options specified by OPTIONS, and
- using BUF to store copies of these options, set ARGV[0], ARGV[1],
- etc. to the option copies. Return the number N of options found.
- Do not set ARGV[N] to NULL. If ARGV is NULL, do not store ARGV[0]
- etc. Backslash can be used to escape whitespace (and backslashes). */
-static int
-prepend_args (options, buf, argv)
- char const *options;
- char *buf;
- char **argv;
-{
- char const *o = options;
- char *b = buf;
- int n = 0;
-
- for (;;)
- {
- while (isspace ((unsigned char) *o))
- o++;
- if (!*o)
- return n;
- if (argv)
- argv[n] = b;
- n++;
-
- do
- if ((*b++ = *o++) == '\\' && *o)
- b[-1] = *o++;
- while (*o && ! isspace ((unsigned char) *o));
-
- *b++ = '\0';
- }
-}
-
-/* Prepend the whitespace-separated options in OPTIONS to the argument
- vector of a main program with argument count *PARGC and argument
- vector *PARGV. */
-void
-prepend_default_options (options, pargc, pargv)
- char const *options;
- int *pargc;
- char ***pargv;
-{
- if (options)
- {
- char *buf = xmalloc (strlen (options) + 1);
- int prepended = prepend_args (options, buf, (char **) NULL);
- int argc = *pargc;
- char * const *argv = *pargv;
- char **pp = (char **) xmalloc ((prepended + argc + 1) * sizeof *pp);
- *pargc = prepended + argc;
- *pargv = pp;
- *pp++ = *argv++;
- pp += prepend_args (options, buf, pp);
- while ((*pp++ = *argv++))
- continue;
- }
-}
OpenPOWER on IntegriCloud