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);