summaryrefslogtreecommitdiffstats
path: root/contrib/cvs/src/cvsrc.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1997-05-15 22:46:24 +0000
committerpeter <peter@FreeBSD.org>1997-05-15 22:46:24 +0000
commit4f40fe8334ad5f056e1d9105f23fe7ac859c39ba (patch)
tree3b2f0092fa216d9f61059ba94b7f10b5bacf9496 /contrib/cvs/src/cvsrc.c
parent8982e501c77217c860f79bba431f46a62b607a21 (diff)
downloadFreeBSD-src-4f40fe8334ad5f056e1d9105f23fe7ac859c39ba.zip
FreeBSD-src-4f40fe8334ad5f056e1d9105f23fe7ac859c39ba.tar.gz
Import of cvs-1.9.9-970515 onto vendor branch.
Obtained from: cyclic.com
Diffstat (limited to 'contrib/cvs/src/cvsrc.c')
-rw-r--r--contrib/cvs/src/cvsrc.c41
1 files changed, 18 insertions, 23 deletions
diff --git a/contrib/cvs/src/cvsrc.c b/contrib/cvs/src/cvsrc.c
index 140ce1c..819013c 100644
--- a/contrib/cvs/src/cvsrc.c
+++ b/contrib/cvs/src/cvsrc.c
@@ -55,13 +55,6 @@ read_cvsrc (argc, argv, cmdname)
if (*argc == -1)
return;
- /* setup the new options list */
-
- new_argc = 1;
- max_new_argv = (*argc) + GROW;
- new_argv = (char **) xmalloc (max_new_argv * sizeof (char*));
- new_argv[0] = xstrdup ((*argv)[0]);
-
/* determine filename for ~/.cvsrc */
homedir = get_homedir ();
@@ -105,30 +98,28 @@ read_cvsrc (argc, argv, cmdname)
fclose (cvsrcfile);
+ /* setup the new options list */
+
+ new_argc = 1;
+ max_new_argv = (*argc) + GROW;
+ new_argv = (char **) xmalloc (max_new_argv * sizeof (char*));
+ new_argv[0] = xstrdup ((*argv)[0]);
+
if (found)
{
/* skip over command in the options line */
- optstart = strtok (line + command_len, "\t \n");
-
- do
+ for (optstart = strtok (line + command_len, "\t \n");
+ optstart;
+ optstart = strtok (NULL, "\t \n"))
{
- new_argv [new_argc] = xstrdup (optstart);
- new_argv [new_argc+1] = NULL;
- new_argc += 1;
+ new_argv [new_argc++] = xstrdup (optstart);
if (new_argc >= max_new_argv)
{
- char **tmp_argv;
max_new_argv += GROW;
- tmp_argv = (char **) xmalloc (max_new_argv * sizeof (char*));
- for (i = 0; i <= new_argc; i++)
- tmp_argv[i] = new_argv[i];
- free(new_argv);
- new_argv = tmp_argv;
+ new_argv = (char **) xrealloc (new_argv, max_new_argv * sizeof (char*));
}
-
}
- while ((optstart = strtok (NULL, "\t \n")) != NULL);
}
if (line != NULL)
@@ -136,10 +127,14 @@ read_cvsrc (argc, argv, cmdname)
/* now copy the remaining arguments */
+ if (new_argc + *argc > max_new_argv)
+ {
+ max_new_argv = new_argc + *argc;
+ new_argv = (char **) xrealloc (new_argv, max_new_argv * sizeof (char*));
+ }
for (i=1; i < *argc; i++)
{
- new_argv [new_argc] = (*argv)[i];
- new_argc += 1;
+ new_argv [new_argc++] = (*argv)[i];
}
*argc = new_argc;
OpenPOWER on IntegriCloud