notes: fix handling of colon-separated values
authorMichael Haggerty <mhagger@alum.mit.edu>
Sun, 4 Nov 2012 07:07:09 +0000 (08:07 +0100)
committerJeff King <peff@peff.net>
Thu, 8 Nov 2012 16:34:42 +0000 (11:34 -0500)
The substrings output by strbuf_split() include the ':' delimiters.
When processing GIT_NOTES_DISPLAY_REF and GIT_NOTES_REWRITE_REF, strip
off the delimiter character *before* checking whether the substring is
empty rather than after, so that empty strings within the list are
also skipped.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Jeff King <peff@peff.net>
notes.c

diff --git a/notes.c b/notes.c
index 62f8f6f75bf23bf0502cec508f0079255a5db2b2..63b2a09d47aed8028e4185870ccd816b375cf0dd 100644 (file)
--- a/notes.c
+++ b/notes.c
@@ -951,10 +951,10 @@ void string_list_add_refs_from_colon_sep(struct string_list *list,
        split = strbuf_split(&globbuf, ':');
 
        for (i = 0; split[i]; i++) {
+               if (split[i]->len && split[i]->buf[split[i]->len-1] == ':')
+                       strbuf_setlen(split[i], split[i]->len-1);
                if (!split[i]->len)
                        continue;
-               if (split[i]->buf[split[i]->len-1] == ':')
-                       strbuf_setlen(split[i], split[i]->len-1);
                string_list_add_refs_by_glob(list, split[i]->buf);
        }