@@ -1065,7 +1065,18 @@ static struct cache_entry *refresh_cache_ent(struct index_state *istate,
10651065 return updated ;
10661066}
10671067
1068- int refresh_index (struct index_state * istate , unsigned int flags , const char * * pathspec , char * seen )
1068+ static void show_file (const char * fmt , const char * name , int in_porcelain ,
1069+ int * first , char * header_msg )
1070+ {
1071+ if (in_porcelain && * first && header_msg ) {
1072+ printf ("%s\n" , header_msg );
1073+ * first = 0 ;
1074+ }
1075+ printf (fmt , name );
1076+ }
1077+
1078+ int refresh_index (struct index_state * istate , unsigned int flags , const char * * pathspec ,
1079+ char * seen , char * header_msg )
10691080{
10701081 int i ;
10711082 int has_errors = 0 ;
@@ -1074,11 +1085,14 @@ int refresh_index(struct index_state *istate, unsigned int flags, const char **p
10741085 int quiet = (flags & REFRESH_QUIET ) != 0 ;
10751086 int not_new = (flags & REFRESH_IGNORE_MISSING ) != 0 ;
10761087 int ignore_submodules = (flags & REFRESH_IGNORE_SUBMODULES ) != 0 ;
1088+ int first = 1 ;
1089+ int in_porcelain = (flags & REFRESH_IN_PORCELAIN );
10771090 unsigned int options = really ? CE_MATCH_IGNORE_VALID : 0 ;
1078- const char * needs_update_message ;
1091+ const char * needs_update_fmt ;
1092+ const char * needs_merge_fmt ;
10791093
1080- needs_update_message = (( flags & REFRESH_SAY_CHANGED )
1081- ? "locally modified " : "needs update " );
1094+ needs_update_fmt = (in_porcelain ? "M\t%s\n" : "%s: needs update\n" );
1095+ needs_merge_fmt = ( in_porcelain ? "U\t%s\n " : "%s: needs merge\n " );
10821096 for (i = 0 ; i < istate -> cache_nr ; i ++ ) {
10831097 struct cache_entry * ce , * new ;
10841098 int cache_errno = 0 ;
@@ -1094,7 +1108,7 @@ int refresh_index(struct index_state *istate, unsigned int flags, const char **p
10941108 i -- ;
10951109 if (allow_unmerged )
10961110 continue ;
1097- printf ( "%s: needs merge\n" , ce -> name );
1111+ show_file ( needs_merge_fmt , ce -> name , in_porcelain , & first , header_msg );
10981112 has_errors = 1 ;
10991113 continue ;
11001114 }
@@ -1117,7 +1131,7 @@ int refresh_index(struct index_state *istate, unsigned int flags, const char **p
11171131 }
11181132 if (quiet )
11191133 continue ;
1120- printf ( "%s: %s\n" , ce -> name , needs_update_message );
1134+ show_file ( needs_update_fmt , ce -> name , in_porcelain , & first , header_msg );
11211135 has_errors = 1 ;
11221136 continue ;
11231137 }
0 commit comments