diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-06-25 15:37:07 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-06-25 15:37:07 +0000 |
commit | 94f01bdd2fda575769f01f8072689fa6936af8f4 (patch) | |
tree | c2ffd2a36b7babe0b47335f407b3f20e71bb25ba /src/util/program.c | |
parent | 2d4ae427e8d2a4bc305c42100d5cb35a75916879 (diff) | |
download | gnunet-94f01bdd2fda575769f01f8072689fa6936af8f4.tar.gz gnunet-94f01bdd2fda575769f01f8072689fa6936af8f4.zip |
cleaning argz mess
Diffstat (limited to 'src/util/program.c')
-rw-r--r-- | src/util/program.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/util/program.c b/src/util/program.c index bbedc05d0..88b67a21e 100644 --- a/src/util/program.c +++ b/src/util/program.c | |||
@@ -35,15 +35,6 @@ | |||
35 | #include "gnunet_scheduler_lib.h" | 35 | #include "gnunet_scheduler_lib.h" |
36 | #include <gcrypt.h> | 36 | #include <gcrypt.h> |
37 | 37 | ||
38 | #if HAVE_ARGZ_H | ||
39 | #include <argz.h> | ||
40 | #else | ||
41 | #include "program_lib_strnlen.c" | ||
42 | #include "program_lib_strndup.c" | ||
43 | #include "program_lib_mempcpy.c" | ||
44 | #include "program_lib_argz.c" | ||
45 | #endif | ||
46 | |||
47 | /** | 38 | /** |
48 | * Context for the command. | 39 | * Context for the command. |
49 | */ | 40 | */ |
@@ -156,19 +147,27 @@ GNUNET_PROGRAM_run (int argc, | |||
156 | gargs = getenv ("GNUNET_ARGS"); | 147 | gargs = getenv ("GNUNET_ARGS"); |
157 | if (gargs != NULL) | 148 | if (gargs != NULL) |
158 | { | 149 | { |
159 | char *gargz; | ||
160 | size_t gargl; | ||
161 | char **gargv; | 150 | char **gargv; |
151 | unsigned int gargc; | ||
162 | int i; | 152 | int i; |
163 | 153 | char *tok; | |
164 | argz_create_sep (gargs, ' ', &gargz, &gargl); | 154 | char *cargs; |
155 | |||
156 | gargv = NULL; | ||
157 | gargc = 0; | ||
165 | for (i=0;i<argc;i++) | 158 | for (i=0;i<argc;i++) |
166 | argz_insert (&gargz, &gargl, gargz, argv[i]); | 159 | GNUNET_array_append (gargv, gargc, GNUNET_strdup (argv[i])); |
167 | gargv = GNUNET_malloc (sizeof (char*) * (gargl+1)); | 160 | cargs = GNUNET_strdup (gargs); |
168 | argz_extract (gargz, gargl, gargv); | 161 | tok = strtok (cargs, " "); |
169 | argc = argz_count (gargz, gargl); | 162 | while (NULL != tok) |
170 | free (gargz); | 163 | { |
164 | GNUNET_array_append (gargv, gargc, GNUNET_strdup (tok)); | ||
165 | tok = strtok (NULL, " "); | ||
166 | } | ||
167 | GNUNET_free (cargs); | ||
168 | GNUNET_array_append (gargv, gargc, NULL); | ||
171 | argv = (char *const *) gargv; | 169 | argv = (char *const *) gargv; |
170 | argc = gargc - 1; | ||
172 | } | 171 | } |
173 | memset (&cc, 0, sizeof (cc)); | 172 | memset (&cc, 0, sizeof (cc)); |
174 | loglev = NULL; | 173 | loglev = NULL; |