Skip to content
  • Pierre Habouzit's avatar
    Full rework of quote_c_style and write_name_quoted. · 663af342
    Pierre Habouzit authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    * quote_c_style works on a strbuf instead of a wild buffer.
    * quote_c_style is now clever enough to not add double quotes if not needed.
    
    * write_name_quoted inherits those advantages, but also take a different
      set of arguments. Now instead of asking for quotes or not, you pass a
      "terminator". If it's \0 then we assume you don't want to escape, else C
      escaping is performed. In any case, the terminator is also appended to the
      stream. It also no longer takes the prefix/prefix_len arguments, as it's
      seldomly used, and makes some optimizations harder.
    
    * write_name_quotedpfx is created to work like write_name_quoted and take
      the prefix/prefix_len arguments.
    
    Thanks to those API changes, diff.c has somehow lost weight, thanks to the
    removal of functions that were wrappers around the old write_name_quoted
    trying to give it a semantics like the new one, but performing a lot of
    allocations for this goal. Now we always write directly to the stream, no
    intermediate allocation is performed.
    
    As a side effect of the refactor in builtin-apply.c, the length of the bar
    graphs in diffstats are not affected anymore by the fact that the path was
    clipped.
    
    Signed-off-by: default avatarPierre Habouzit <madcoder@debian.org>
    663af342