1. 19 Jul, 2013 1 commit
  2. 10 Jul, 2013 1 commit
  3. 07 Oct, 2012 1 commit
  4. 03 Sep, 2012 1 commit
    • Jeff King's avatar
      argv-array: add pop function · fe4a0a28
      Jeff King authored
      Sometimes we build a set of similar command lines, differing
      only in the final arguments (e.g., "fetch --multiple"). To
      use argv_array for this, you have to either push the same
      set of elements repeatedly, or break the abstraction by
      manually manipulating the array's internal members.
      
      Instead, let's provide a sanctioned "pop" function to remove
      elements from the end.
      Signed-off-by: default avatarJeff King <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      fe4a0a28
  5. 18 Apr, 2012 2 commits
    • Jeff King's avatar
      argv-array: add a new "pushl" method · d15bbe13
      Jeff King authored
      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: default avatarJeff King <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      d15bbe13
    • Jeff King's avatar
      argv-array: refactor empty_argv initialization · fd93d2e6
      Jeff King authored
      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
      argv-array.
      
      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: default avatarJeff King <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      fd93d2e6
  6. 14 Sep, 2011 1 commit
    • 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 <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      c1189cae