We want to chomp newlines off the end of the "value" string.
But because it's const, we must track its length rather than
writing a NUL. This leads to us having to tweak that length
later, to account for moving the pointer forward.

Since we are about to create a copy of it anyway, let's just
wait and chomp at the end.

Signed-off-by: Jeff King <p...@peff.net>
---
 builtin/log.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/builtin/log.c b/builtin/log.c
index e00cea7..76823e6 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -675,21 +675,18 @@ static struct string_list extra_cc;
 static void add_header(const char *value)
 {
        struct string_list_item *item;
-       int len = strlen(value);
-       while (len && value[len - 1] == '\n')
-               len--;
+       size_t len;
 
-       if (!strncasecmp(value, "to: ", 4)) {
+       if (!strncasecmp(value, "to: ", 4))
                item = string_list_append(&extra_to, value + 4);
-               len -= 4;
-       } else if (!strncasecmp(value, "cc: ", 4)) {
+       else if (!strncasecmp(value, "cc: ", 4))
                item = string_list_append(&extra_cc, value + 4);
-               len -= 4;
-       } else {
+       else
                item = string_list_append(&extra_hdr, value);
-       }
 
-       item->string[len] = '\0';
+       len = strlen(item->string);
+       while (len && item->string[len - 1] == '\n')
+               item->string[--len] = '\0';
 }
 
 #define THREAD_SHALLOW 1
-- 
2.7.0.rc3.367.g09631da

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to