{"thread":{"id":"37024","subject":"[PATCH 1/2] wt-status: use argv_array for environment","startedAt":"2014-06-29T20:47:00Z","lastAt":"2014-07-01T08:44:40Z","messageCount":3,"participants":["René Scharfe","Matthieu Moy"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"245164","messageId":"53B07B44.9000406@web.de","threadId":"37024","inReplyTo":null,"subject":"[PATCH 1/2] wt-status: use argv_array for environment","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2014-06-29T20:47:00Z","receivedAt":"2014-06-29T20:47:00Z","isPatch":true,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Instead of using a PATH_MAX buffer, use argv_array for constructing the\nenvironment for git submodule summary.  This simplifies the code a bit\nand removes the arbitrary length limit.\n\nSigned-off-by: Rene Scharfe <l.s.r@web.de>\n---\n wt-status.c | 9 ++++-----\n 1 file changed, 4 insertions(+), 5 deletions(-)\n\ndiff --git a/wt-status.c b/wt-status.c\nindex 318a191..2c0bff8 100644\n--- a/wt-status.c\n+++ b/wt-status.c\n@@ -735,8 +735,7 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt\n {\n \tstruct child_process sm_summary;\n \tchar summary_limit[64];\n-\tchar index[PATH_MAX];\n-\tconst char *env[] = { NULL, NULL };\n+\tstruct argv_array env = ARGV_ARRAY_INIT;\n \tstruct argv_array argv = ARGV_ARRAY_INIT;\n \tstruct strbuf cmd_stdout = STRBUF_INIT;\n \tstruct strbuf summary = STRBUF_INIT;\n@@ -744,9 +743,8 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt\n \tsize_t len;\n \n \tsprintf(summary_limit, \"%d\", s->submodule_summary);\n-\tsnprintf(index, sizeof(index), \"GIT_INDEX_FILE=%s\", s->index_file);\n+\targv_array_pushf(&env, \"GIT_INDEX_FILE=%s\", s->index_file);\n \n-\tenv[0] = index;\n \targv_array_push(&argv, \"submodule\");\n \targv_array_push(&argv, \"summary\");\n \targv_array_push(&argv, uncommitted ? \"--files\" : \"--cached\");\n@@ -758,13 +756,14 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt\n \n \tmemset(&sm_summary, 0, sizeof(sm_summary));\n \tsm_summary.argv = argv.argv;\n-\tsm_summary.env = env;\n+\tsm_summary.env = env.argv;\n \tsm_summary.git_cmd = 1;\n \tsm_summary.no_stdin = 1;\n \tfflush(s->fp);\n \tsm_summary.out = -1;\n \n \trun_command(&sm_summary);\n+\targv_array_clear(&env);\n \targv_array_clear(&argv);\n \n \tlen = strbuf_read(&cmd_stdout, sm_summary.out, 1024);\n-- \n2.0.0\n"},{"id":"245165","messageId":"53B07D50.9050805@web.de","threadId":"37024","inReplyTo":"53B07B44.9000406@web.de","subject":"[PATCH 2/2] wt-status: simplify building of summary limit argument","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2014-06-29T20:55:44Z","receivedAt":"2014-06-29T20:55:44Z","isPatch":true,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Use argv_array_pushf for building the number string for the option\n--summary-limit directly instead of using an intermediate buffer.\n\nSigned-off-by: Rene Scharfe <l.s.r@web.de>\n---\n wt-status.c | 4 +---\n 1 file changed, 1 insertion(+), 3 deletions(-)\n\ndiff --git a/wt-status.c b/wt-status.c\nindex 2c0bff8..882cfe9 100644\n--- a/wt-status.c\n+++ b/wt-status.c\n@@ -734,7 +734,6 @@ static void wt_status_print_changed(struct wt_status *s)\n static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitted)\n {\n \tstruct child_process sm_summary;\n-\tchar summary_limit[64];\n \tstruct argv_array env = ARGV_ARRAY_INIT;\n \tstruct argv_array argv = ARGV_ARRAY_INIT;\n \tstruct strbuf cmd_stdout = STRBUF_INIT;\n@@ -742,7 +741,6 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt\n \tchar *summary_content;\n \tsize_t len;\n \n-\tsprintf(summary_limit, \"%d\", s->submodule_summary);\n \targv_array_pushf(&env, \"GIT_INDEX_FILE=%s\", s->index_file);\n \n \targv_array_push(&argv, \"submodule\");\n@@ -750,7 +748,7 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt\n \targv_array_push(&argv, uncommitted ? \"--files\" : \"--cached\");\n \targv_array_push(&argv, \"--for-status\");\n \targv_array_push(&argv, \"--summary-limit\");\n-\targv_array_push(&argv, summary_limit);\n+\targv_array_pushf(&argv, \"%d\", s->submodule_summary);\n \tif (!uncommitted)\n \t\targv_array_push(&argv, s->amend ? \"HEAD^\" : \"HEAD\");\n \n-- \n2.0.0\n"},{"id":"245227","messageId":"vpq61jhfoxz.fsf@anie.imag.fr","threadId":"37024","inReplyTo":"53B07D50.9050805@web.de","subject":"Re: [PATCH 2/2] wt-status: simplify building of summary limit argument","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2014-07-01T08:44:40Z","receivedAt":"2014-07-01T08:44:40Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"René Scharfe <l.s.r@web.de> writes:\n\n> Signed-off-by: Rene Scharfe <l.s.r@web.de>\n> ---\n>  wt-status.c | 4 +---\n\nBoth patches sound straightforward and good to me.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"}]}