Skip to content
Commits on Apr 18, 2012
  1. @peff @gitster

    argv-array: add a new "pushl" method

    peff committed with gitster
    It can be convenient to push many strings in a single line
    (e.g., if you are initializing an array with defaults). This
    patch provides a convenience wrapper to allow this.
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
  2. @peff @gitster

    argv-array: refactor empty_argv initialization

    peff committed with gitster
    An empty argv-array is initialized to point to a static
    empty NULL-terminated array.  The original implementation
    separates the actual storage of the NULL-terminator from the
    pointer to the list.  This makes the exposed type a "const
    char **", which nicely matches the type stored by the
    However, this indirection means that one cannot use
    empty_argv to initialize a static variable, since it is
    not a constant.
    Instead, we can expose empty_argv directly, as an array of
    pointers. The only place we use it is in the ARGV_ARRAY_INIT
    initializer, and it decays to a pointer appropriately there.
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
Commits on Sep 14, 2011
  1. @peff @gitster

    refactor argv_array into generic code

    peff committed with gitster
    The submodule code recently grew generic code to build a
    dynamic argv array. Many other parts of the code can reuse
    this, too, so let's make it generically available.
    There are two enhancements not found in the original code:
      1. We now handle the NULL-termination invariant properly,
         even when no strings have been pushed (before, you
         could have an empty, NULL argv). This was not a problem
         for the submodule code, which always pushed at least
         one argument, but was not sufficiently safe for
         generic code.
      2. There is a formatted variant of the "push" function.
         This is a convenience function which was not needed by
         the submodule code, but will make it easier to port
         other users to the new code.
    Signed-off-by: Jeff King <>
    Signed-off-by: Junio C Hamano <>
Something went wrong with that request. Please try again.