@@ -734,37 +734,34 @@ static void wt_status_print_changed(struct wt_status *s)
734
734
static void wt_status_print_submodule_summary (struct wt_status * s , int uncommitted )
735
735
{
736
736
struct child_process sm_summary ;
737
- char summary_limit [64 ];
738
- char index [PATH_MAX ];
739
- const char * env [] = { NULL , NULL };
737
+ struct argv_array env = ARGV_ARRAY_INIT ;
740
738
struct argv_array argv = ARGV_ARRAY_INIT ;
741
739
struct strbuf cmd_stdout = STRBUF_INIT ;
742
740
struct strbuf summary = STRBUF_INIT ;
743
741
char * summary_content ;
744
742
size_t len ;
745
743
746
- sprintf (summary_limit , "%d" , s -> submodule_summary );
747
- snprintf (index , sizeof (index ), "GIT_INDEX_FILE=%s" , s -> index_file );
744
+ argv_array_pushf (& env , "GIT_INDEX_FILE=%s" , s -> index_file );
748
745
749
- env [0 ] = index ;
750
746
argv_array_push (& argv , "submodule" );
751
747
argv_array_push (& argv , "summary" );
752
748
argv_array_push (& argv , uncommitted ? "--files" : "--cached" );
753
749
argv_array_push (& argv , "--for-status" );
754
750
argv_array_push (& argv , "--summary-limit" );
755
- argv_array_push (& argv , summary_limit );
751
+ argv_array_pushf (& argv , "%d" , s -> submodule_summary );
756
752
if (!uncommitted )
757
753
argv_array_push (& argv , s -> amend ? "HEAD^" : "HEAD" );
758
754
759
755
memset (& sm_summary , 0 , sizeof (sm_summary ));
760
756
sm_summary .argv = argv .argv ;
761
- sm_summary .env = env ;
757
+ sm_summary .env = env . argv ;
762
758
sm_summary .git_cmd = 1 ;
763
759
sm_summary .no_stdin = 1 ;
764
760
fflush (s -> fp );
765
761
sm_summary .out = -1 ;
766
762
767
763
run_command (& sm_summary );
764
+ argv_array_clear (& env );
768
765
argv_array_clear (& argv );
769
766
770
767
len = strbuf_read (& cmd_stdout , sm_summary .out , 1024 );
0 commit comments