Merge branch 'cc/interpret-trailers'
authorJunio C Hamano <gitster@pobox.com>
Wed, 19 Nov 2014 21:47:49 +0000 (13:47 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 19 Nov 2014 21:47:52 +0000 (13:47 -0800)
Small fixes to a new experimental command already in 'master'.

* cc/interpret-trailers:
trailer: display a trailer without its trailing newline
trailer: ignore comment lines inside the trailers

1  2 
trailer.c
diff --combined trailer.c
index 6ae786505ae782809cbc0fa3599c88c7783782d5,219a5a2dad613cbeaa929a55e47031b76c84fae2..a905f5c50cef099c23d8a05acefc279168de69ec
+++ b/trailer.c
@@@ -228,7 -228,7 +228,7 @@@ static const char *apply_command(const 
  {
        struct strbuf cmd = STRBUF_INIT;
        struct strbuf buf = STRBUF_INIT;
 -      struct child_process cp;
 +      struct child_process cp = CHILD_PROCESS_INIT;
        const char *argv[] = {NULL, NULL};
        const char *result;
  
                strbuf_replace(&cmd, TRAILER_ARG_STRING, arg);
  
        argv[0] = cmd.buf;
 -      memset(&cp, 0, sizeof(cp));
        cp.argv = argv;
        cp.env = local_repo_env;
        cp.no_stdin = 1;
@@@ -582,8 -583,12 +582,12 @@@ static int parse_trailer(struct strbuf 
        strbuf_addch(&seps, '=');
        len = strcspn(trailer, seps.buf);
        strbuf_release(&seps);
-       if (len == 0)
-               return error(_("empty trailer token in trailer '%s'"), trailer);
+       if (len == 0) {
+               int l = strlen(trailer);
+               while (l > 0 && isspace(trailer[l - 1]))
+                       l--;
+               return error(_("empty trailer token in trailer '%.*s'"), l, trailer);
+       }
        if (len < strlen(trailer)) {
                strbuf_add(tok, trailer, len);
                strbuf_trim(tok);
@@@ -803,8 -808,10 +807,10 @@@ static int process_input_file(struct st
  
        /* Parse trailer lines */
        for (i = trailer_start; i < patch_start; i++) {
-               struct trailer_item *new = create_trailer_item(lines[i]->buf);
-               add_trailer_item(in_tok_first, in_tok_last, new);
+               if (lines[i]->buf[0] != comment_line_char) {
+                       struct trailer_item *new = create_trailer_item(lines[i]->buf);
+                       add_trailer_item(in_tok_first, in_tok_last, new);
+               }
        }
  
        return patch_start;