]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Add args_init_from_string function
authorJoel Rosdahl <joel@rosdahl.net>
Thu, 15 Jul 2010 14:57:28 +0000 (16:57 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Thu, 15 Jul 2010 17:20:33 +0000 (19:20 +0200)
args.c
ccache.h

diff --git a/args.c b/args.c
index bb7797ae9bd10982f139c8ab44d156967f27c98a..81709b8fd6f01b0fb4c150dcdd44701dc41a1a96 100644 (file)
--- a/args.c
+++ b/args.c
@@ -35,6 +35,23 @@ ARGS *args_init(int init_argc, char **init_args)
        return args;
 }
 
+ARGS *args_init_from_string(const char *command)
+{
+       ARGS *args;
+       char *p = x_strdup(command);
+       char *q = p;
+       char *word;
+
+       args = args_init(0, NULL);
+       while ((word = strtok(q, " "))) {
+               args_add(args, word);
+               q = NULL;
+       }
+
+       free(p);
+       return args;
+}
+
 ARGS *args_copy(ARGS *args)
 {
        return args_init(args->argc, args->argv);
index b3febfb5383fcba8d6c40d186b38a2250f7ce59c..35bfdc605bab1ced7c548502ce10c1a5501f2aef 100644 (file)
--- a/ccache.h
+++ b/ccache.h
@@ -157,6 +157,7 @@ typedef struct {
 
 
 ARGS *args_init(int , char **);
+ARGS *args_init_from_string(const char *);
 ARGS *args_copy(ARGS *args);
 void args_free(ARGS *args);
 void args_add(ARGS *args, const char *s);