@@ -734,37 +734,34 @@ static void wt_status_print_changed(struct wt_status *s)
734734static void wt_status_print_submodule_summary (struct wt_status * s , int uncommitted )
735735{
736736 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 ;
740738 struct argv_array argv = ARGV_ARRAY_INIT ;
741739 struct strbuf cmd_stdout = STRBUF_INIT ;
742740 struct strbuf summary = STRBUF_INIT ;
743741 char * summary_content ;
744742 size_t len ;
745743
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 );
748745
749- env [0 ] = index ;
750746 argv_array_push (& argv , "submodule" );
751747 argv_array_push (& argv , "summary" );
752748 argv_array_push (& argv , uncommitted ? "--files" : "--cached" );
753749 argv_array_push (& argv , "--for-status" );
754750 argv_array_push (& argv , "--summary-limit" );
755- argv_array_push (& argv , summary_limit );
751+ argv_array_pushf (& argv , "%d" , s -> submodule_summary );
756752 if (!uncommitted )
757753 argv_array_push (& argv , s -> amend ? "HEAD^" : "HEAD" );
758754
759755 memset (& sm_summary , 0 , sizeof (sm_summary ));
760756 sm_summary .argv = argv .argv ;
761- sm_summary .env = env ;
757+ sm_summary .env = env . argv ;
762758 sm_summary .git_cmd = 1 ;
763759 sm_summary .no_stdin = 1 ;
764760 fflush (s -> fp );
765761 sm_summary .out = -1 ;
766762
767763 run_command (& sm_summary );
764+ argv_array_clear (& env );
768765 argv_array_clear (& argv );
769766
770767 len = strbuf_read (& cmd_stdout , sm_summary .out , 1024 );
0 commit comments