From: Christian Couder Date: Wed, 14 Sep 2011 05:54:48 GMT Subject: Re: [PATCH 3/7] refactor argv_array into generic code Message-ID: In-Reply-To: <20110913215757.GC24490@sigill.intra.peff.net> Hi Peff, On Tue, Sep 13, 2011 at 11:57 PM, Jeff King wrote: > diff --git a/argv-array.c b/argv-array.c > new file mode 100644 > index 0000000..a50507a > --- /dev/null > +++ b/argv-array.c > @@ -0,0 +1,52 @@ > +#include "cache.h" > +#include "argv-array.h" > +#include "strbuf.h" > + > +static const char *empty_argv_storage = NULL; > +const char **empty_argv = &empty_argv_storage; > + > +void argv_array_init(struct argv_array *array) > +{ > +       array->argv = empty_argv; > +       array->argc = 0; > +       array->alloc = 0; > +} > + > +static void argv_array_push_nodup(struct argv_array *array, const char *value) > +{ > +       if (array->argv == empty_argv) > +               array->argv = NULL; > + > +       ALLOC_GROW(array->argv, array->argc + 2, array->alloc); > +       array->argv[array->argc++] = value; > +       array->argv[array->argc] = NULL; > +} > + > +void argv_array_push(struct argv_array *array, const char *value) > +{ > +       argv_array_push_nodup(array, xstrdup(value)); > +} > + > +void argv_array_pushf(struct argv_array *array, const char *fmt, ...) > +{ > +       va_list ap; > +       struct strbuf v = STRBUF_INIT; > + > +       va_start(ap, fmt); > +       strbuf_vaddf(&v, fmt, ap); > +       va_end(ap); > + > +       argv_array_push_nodup(array, strbuf_detach(&v, NULL)); > +} In sha1-array you called the "push" function "sha1_array_append" instead of "sha1_array_push", so I wonder why here you call them "*_push*" instead of "*_append*"? Thanks for doing this anyway, Christian.