On Tue, Dec 6, 2016 at 1:51 PM, Brandon Williams <bmwill@xxxxxxxxxx> wrote: > struct strbuf sb = STRBUF_INIT; > - if (prefixlen && !literal_global) { > - /* Preserve the actual prefix length of each pattern */ > - if (short_magic) > - prefix_short_magic(&sb, prefixlen, short_magic); > - else if (long_magic_end) { > - strbuf_add(&sb, elt, long_magic_end - elt); > - strbuf_addf(&sb, ",prefix:%d)", prefixlen); > - } else > - strbuf_addf(&sb, ":(prefix:%d)", prefixlen); This fixes the issue with add -p . mentioned somewhere else on the mailing list. > - } > + > + /* Preserve the actual prefix length of each pattern */ > + prefix_magic(&sb, prefixlen, element_magic); > + Did you find a reason why we passed magic literally, i.e. short magic was passed as short magic and long magic as long magic before? I cannot think of any reason why that would have been the case, but I assume there had to be a reason for that. Another note: This collides with the attr system refactoring, which I postpone redoing until the submodule checkout is done, so maybe you want to pickup this patch: https://public-inbox.org/git/20161110203428.30512-31-sbeller@xxxxxxxxxx/ which only relies on one patch prior https://public-inbox.org/git/20161110203428.30512-30-sbeller@xxxxxxxxxx/