From: Joel Rosdahl Date: Fri, 13 Aug 2010 21:03:37 +0000 (+0200) Subject: Add args_set() function X-Git-Tag: v3.1~84 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=861184b72519d0116d06ee09557ff64076624e3e;p=thirdparty%2Fccache.git Add args_set() function --- diff --git a/args.c b/args.c index 49d14812b..af9d75f33 100644 --- a/args.c +++ b/args.c @@ -18,6 +18,7 @@ #include "ccache.h" +#include #include #include @@ -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) diff --git a/ccache.h b/ccache.h index 8ddc533b2..884812941 100644 --- 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);