• Jeff King's avatar
    refactor argv_array into generic code · c1189cae
    Jeff King authored
    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: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    c1189cae
argv-array.h 463 Bytes