From: Jeff King Date: Tue, 29 Dec 2015 07:20:48 GMT Subject: [PATCH 02/14] log: refactor add_header to drop some magic numbers Message-ID: <20151229072048.GB8842@sigill.intra.peff.net> In-Reply-To: <20151229071847.GA8726@sigill.intra.peff.net> 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 --- 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