]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Add args_set() function
authorJoel Rosdahl <joel@rosdahl.net>
Fri, 13 Aug 2010 21:03:37 +0000 (23:03 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Sat, 14 Aug 2010 19:14:07 +0000 (21:14 +0200)
args.c
ccache.h

diff --git a/args.c b/args.c
index 49d14812b747c4f4360690f6fec2b4ebc17a7e85..af9d75f330c7b7265e0b8fd38be4fbb6366ba14f 100644 (file)
--- a/args.c
+++ b/args.c
@@ -18,6 +18,7 @@
 
 #include "ccache.h"
 
+#include <assert.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -104,6 +105,15 @@ args_pop(struct args *args, int n)
        }
 }
 
+/* set argument at given index */
+void
+args_set(struct args *args, int index, const char *value)
+{
+       assert(index < args->argc);
+       free(args->argv[index]);
+       args->argv[index] = x_strdup(value);
+}
+
 /* remove the first element of the argument list */
 void
 args_remove_first(struct args *args)
index 8ddc533b286ce77c2d9a76051015f94d00a3e037..88481294152aba61b6e4ed4cc780497afb29e4dd 100644 (file)
--- a/ccache.h
+++ b/ccache.h
@@ -204,6 +204,7 @@ void args_add(struct args *args, const char *s);
 void args_add_prefix(struct args *args, const char *s);
 void args_extend(struct args *args, struct args *to_append);
 void args_pop(struct args *args, int n);
+void args_set(struct args *args, int index, const char *value);
 void args_strip(struct args *args, const char *prefix);
 void args_remove_first(struct args *args);
 char *args_to_string(struct args *args);