Re: [PATCH v4 10/17] trailer: if no input file is passed, read from stdin

2014-02-09 Thread Christian Couder
From: Junio C Hamano gits...@pobox.com
Subject: Re: [PATCH v4 10/17] trailer: if no input file is passed, read from 
stdin
Date: Thu, 06 Feb 2014 13:51:36 -0800

 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???

Sorry, I have a hard time spelling porprelly these days :-)

Thanks,
Christian.
--
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


Re: [PATCH v4 10/17] trailer: if no input file is passed, read from stdin

2014-02-06 Thread Christian Couder
From: Eric Sunshine sunsh...@sunshineco.com

 On Thu, Jan 30, 2014 at 1:49 AM, Christian Couder
 chrisc...@tuxfamily.org wrote:
 It is simpler and more natural if the git interpret-trailers
 is made a filter as its output already goes to sdtout.

 Signed-off-by: Christian Couder chrisc...@tuxfamily.org
 ---
 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)
 
 strbuf_fread(), perhaps?

I chose strbuf_read() because it can be passed 0 as a size hint, while
strbuf_fread() must be passed an exact size.

(As we might read from stdin, we might not be able to know the exact
size before we start reading.)

Thanks,
Christian.
--
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


Re: [PATCH v4 10/17] trailer: if no input file is passed, read from stdin

2014-02-06 Thread Junio C Hamano
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


Re: [PATCH v4 10/17] trailer: if no input file is passed, read from stdin

2014-02-02 Thread Eric Sunshine
On Thu, Jan 30, 2014 at 1:49 AM, Christian Couder
chrisc...@tuxfamily.org wrote:
 It is simpler and more natural if the git interpret-trailers
 is made a filter as its output already goes to sdtout.

 Signed-off-by: Christian Couder chrisc...@tuxfamily.org
 ---
 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)

strbuf_fread(), perhaps?

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

 --
 1.8.5.2.201.gacc5987
--
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


[PATCH v4 10/17] trailer: if no input file is passed, read from stdin

2014-01-29 Thread Christian Couder
It is simpler and more natural if the git interpret-trailers
is made a filter as its output already goes to 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);
 
-- 
1.8.5.2.201.gacc5987


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