trailer: display a trailer without its trailing newline
Trailers passed to the parse_trailer() function often have a trailing newline. When erroring out, we should display the invalid trailer properly, that means without any trailing newline. Helped-by: Junio C Hamano <gitster@pobox.com> Helped-by: Jeff King <peff@peff.net> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder committed
Nov 9, 2014 at 10:23 UTC
d52adf1f328162a9513940913ced044d24c0212f
1 file changed
+6
-2
trailer.c
+6
-2
@@ -583,8 +583,12 @@ static int parse_trailer(struct strbuf *tok, struct strbuf *val, const char *tra
583
strbuf_addch(&seps, '=');
584
len = strcspn(trailer, seps.buf);
585
strbuf_release(&seps);
586
- if (len == 0)
587
- return error(_("empty trailer token in trailer '%s'"), trailer);
586
+ if (len == 0) {
587
+ int l = strlen(trailer);
588
+ while (l > 0 && isspace(trailer[l - 1]))
589
+ l--;
590
+ return error(_("empty trailer token in trailer '%.*s'"), l, trailer);
591
+ }
592
if (len < strlen(trailer)) {
593
strbuf_add(tok, trailer, len);
594
strbuf_trim(tok);