• J
    add git_path_buf helper function · bb3788ce
    Jeff King 提交于
    If you have a function that uses git_path a lot, but would
    prefer to avoid the static buffers, it's useful to keep a
    single scratch buffer locally and reuse it for each call.
    You used to be able to do this with git_snpath:
    
      char buf[PATH_MAX];
    
      foo(git_snpath(buf, sizeof(buf), "foo"));
      bar(git_snpath(buf, sizeof(buf), "bar"));
    
    but since 1a83c240, git_snpath has been replaced with
    strbuf_git_path. This is good, because it removes the
    arbitrary PATH_MAX limit. But using strbuf_git_path is more
    awkward for two reasons:
    
      1. It adds to the buffer, rather than replacing it. This
         is consistent with other strbuf functions, but makes
         reuse of a single buffer more tedious.
    
      2. It doesn't return the buffer, so you can't format
         as part of a function's arguments.
    
    The new git_path_buf solves both of these, so you can use it
    like:
    
      struct strbuf buf = STRBUF_INIT;
    
      foo(git_path_buf(&buf, "foo"));
      bar(git_path_buf(&buf, "bar"));
    
      strbuf_release(&buf);
    Signed-off-by: NJeff King <peff@peff.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    bb3788ce
cache.h 59.5 KB