Christian Couder <chrisc...@tuxfamily.org> writes:

> It is simpler and more natural if the "git interpret-trailers"
> is made a filter as its output already goes to sdtout.

sdtout???

>
> Signed-off-by: Christian Couder <chrisc...@tuxfamily.org>
> ---
>  builtin/interpret-trailers.c  |  2 +-
>  t/t7513-interpret-trailers.sh |  7 +++++++
>  trailer.c                     | 15 +++++++++------
>  3 files changed, 17 insertions(+), 7 deletions(-)
>
> diff --git a/builtin/interpret-trailers.c b/builtin/interpret-trailers.c
> index 04b0ae2..ae8e561 100644
> --- a/builtin/interpret-trailers.c
> +++ b/builtin/interpret-trailers.c
> @@ -23,7 +23,7 @@ int cmd_interpret_trailers(int argc, const char **argv, 
> const char *prefix)
>  
>       struct option options[] = {
>               OPT_BOOL(0, "trim-empty", &trim_empty, N_("trim empty 
> trailers")),
> -             OPT_FILENAME(0, "infile", &infile, N_("use message from file")),
> +             OPT_FILENAME(0, "infile", &infile, N_("use message from file, 
> instead of stdin")),
>               OPT_END()
>       };
>  
> diff --git a/t/t7513-interpret-trailers.sh b/t/t7513-interpret-trailers.sh
> index 8be333c..f5ef81f 100755
> --- a/t/t7513-interpret-trailers.sh
> +++ b/t/t7513-interpret-trailers.sh
> @@ -205,4 +205,11 @@ test_expect_success 'using "ifMissing = doNothing"' '
>       test_cmp expected actual
>  '
>  
> +test_expect_success 'with input from stdin' '
> +     cat complex_message_body >expected &&
> +     printf "Bug #42\nFixes: \nAcked-by= \nAcked-by= Junio\nAcked-by= 
> Peff\nReviewed-by: \nSigned-off-by: \n" >>expected &&
> +     git interpret-trailers "review:" "fix=53" "cc=Linus" "ack: Junio" 
> "fix=22" "bug: 42" "ack: Peff" < complex_message >actual &&
> +     test_cmp expected actual
> +'
> +
>  test_done
> diff --git a/trailer.c b/trailer.c
> index 8681aed..73a65e0 100644
> --- a/trailer.c
> +++ b/trailer.c
> @@ -464,8 +464,13 @@ static struct strbuf **read_input_file(const char 
> *infile)
>  {
>       struct strbuf sb = STRBUF_INIT;
>  
> -     if (strbuf_read_file(&sb, infile, 0) < 0)
> -             die_errno(_("could not read input file '%s'"), infile);
> +     if (infile) {
> +             if (strbuf_read_file(&sb, infile, 0) < 0)
> +                     die_errno(_("could not read input file '%s'"), infile);
> +     } else {
> +             if (strbuf_read(&sb, fileno(stdin), 0) < 0)
> +                     die_errno(_("could not read from stdin"));
> +     }
>  
>       return strbuf_split(&sb, '\n');
>  }
> @@ -530,10 +535,8 @@ void process_trailers(const char *infile, int 
> trim_empty, int argc, const char *
>  
>       git_config(git_trailer_config, NULL);
>  
> -     /* Print the non trailer part of infile */
> -     if (infile) {
> -             process_input_file(infile, &infile_tok_first, &infile_tok_last);
> -     }
> +     /* Print the non trailer part of infile (or stdin if infile is NULL) */
> +     process_input_file(infile, &infile_tok_first, &infile_tok_last);
>  
>       arg_tok_first = process_command_line_args(argc, argv);
--
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