@@ -240,23 +240,23 @@ static int s_update_ref(const char *action,
240240
241241static int update_local_ref (struct ref * ref ,
242242 const char * remote ,
243- char * display )
243+ struct strbuf * display )
244244{
245245 struct commit * current = NULL , * updated ;
246246 enum object_type type ;
247247 struct branch * current_branch = branch_get (NULL );
248248 const char * pretty_ref = prettify_refname (ref -> name );
249249
250- * display = 0 ;
251250 type = sha1_object_info (ref -> new_sha1 , NULL );
252251 if (type < 0 )
253252 die (_ ("object %s not found" ), sha1_to_hex (ref -> new_sha1 ));
254253
255254 if (!hashcmp (ref -> old_sha1 , ref -> new_sha1 )) {
256255 if (verbosity > 0 )
257- sprintf (display , "= %-*s %-*s -> %s" , TRANSPORT_SUMMARY_WIDTH ,
258- _ ("[up to date]" ), REFCOL_WIDTH , remote ,
259- pretty_ref );
256+ strbuf_addf (display , "= %-*s %-*s -> %s" ,
257+ TRANSPORT_SUMMARY_WIDTH ,
258+ _ ("[up to date]" ), REFCOL_WIDTH ,
259+ remote , pretty_ref );
260260 return 0 ;
261261 }
262262
@@ -268,19 +268,22 @@ static int update_local_ref(struct ref *ref,
268268 * If this is the head, and it's not okay to update
269269 * the head, and the old value of the head isn't empty...
270270 */
271- sprintf (display , _ ("! %-*s %-*s -> %s (can't fetch in current branch)" ),
272- TRANSPORT_SUMMARY_WIDTH , _ ("[rejected]" ), REFCOL_WIDTH , remote ,
273- pretty_ref );
271+ strbuf_addf (display ,
272+ _ ("! %-*s %-*s -> %s (can't fetch in current branch)" ),
273+ TRANSPORT_SUMMARY_WIDTH , _ ("[rejected]" ),
274+ REFCOL_WIDTH , remote , pretty_ref );
274275 return 1 ;
275276 }
276277
277278 if (!is_null_sha1 (ref -> old_sha1 ) &&
278279 !prefixcmp (ref -> name , "refs/tags/" )) {
279280 int r ;
280281 r = s_update_ref ("updating tag" , ref , 0 );
281- sprintf (display , "%c %-*s %-*s -> %s%s" , r ? '!' : '-' ,
282- TRANSPORT_SUMMARY_WIDTH , _ ("[tag update]" ), REFCOL_WIDTH , remote ,
283- pretty_ref , r ? _ (" (unable to update local ref)" ) : "" );
282+ strbuf_addf (display , "%c %-*s %-*s -> %s%s" ,
283+ r ? '!' : '-' ,
284+ TRANSPORT_SUMMARY_WIDTH , _ ("[tag update]" ),
285+ REFCOL_WIDTH , remote , pretty_ref ,
286+ r ? _ (" (unable to update local ref)" ) : "" );
284287 return r ;
285288 }
286289
@@ -303,9 +306,11 @@ static int update_local_ref(struct ref *ref,
303306 }
304307
305308 r = s_update_ref (msg , ref , 0 );
306- sprintf (display , "%c %-*s %-*s -> %s%s" , r ? '!' : '*' ,
307- TRANSPORT_SUMMARY_WIDTH , what , REFCOL_WIDTH , remote , pretty_ref ,
308- r ? _ (" (unable to update local ref)" ) : "" );
309+ strbuf_addf (display , "%c %-*s %-*s -> %s%s" ,
310+ r ? '!' : '*' ,
311+ TRANSPORT_SUMMARY_WIDTH , what ,
312+ REFCOL_WIDTH , remote , pretty_ref ,
313+ r ? _ (" (unable to update local ref)" ) : "" );
309314 return r ;
310315 }
311316
@@ -319,9 +324,11 @@ static int update_local_ref(struct ref *ref,
319324 (recurse_submodules != RECURSE_SUBMODULES_ON ))
320325 check_for_new_submodule_commits (ref -> new_sha1 );
321326 r = s_update_ref ("fast-forward" , ref , 1 );
322- sprintf (display , "%c %-*s %-*s -> %s%s" , r ? '!' : ' ' ,
323- TRANSPORT_SUMMARY_WIDTH , quickref , REFCOL_WIDTH , remote ,
324- pretty_ref , r ? _ (" (unable to update local ref)" ) : "" );
327+ strbuf_addf (display , "%c %-*s %-*s -> %s%s" ,
328+ r ? '!' : ' ' ,
329+ TRANSPORT_SUMMARY_WIDTH , quickref ,
330+ REFCOL_WIDTH , remote , pretty_ref ,
331+ r ? _ (" (unable to update local ref)" ) : "" );
325332 return r ;
326333 } else if (force || ref -> force ) {
327334 char quickref [84 ];
@@ -333,15 +340,17 @@ static int update_local_ref(struct ref *ref,
333340 (recurse_submodules != RECURSE_SUBMODULES_ON ))
334341 check_for_new_submodule_commits (ref -> new_sha1 );
335342 r = s_update_ref ("forced-update" , ref , 1 );
336- sprintf (display , "%c %-*s %-*s -> %s (%s)" , r ? '!' : '+' ,
337- TRANSPORT_SUMMARY_WIDTH , quickref , REFCOL_WIDTH , remote ,
338- pretty_ref ,
339- r ? _ ("unable to update local ref" ) : _ ("forced update" ));
343+ strbuf_addf (display , "%c %-*s %-*s -> %s (%s)" ,
344+ r ? '!' : '+' ,
345+ TRANSPORT_SUMMARY_WIDTH , quickref ,
346+ REFCOL_WIDTH , remote , pretty_ref ,
347+ r ? _ ("unable to update local ref" ) : _ ("forced update" ));
340348 return r ;
341349 } else {
342- sprintf (display , "! %-*s %-*s -> %s %s" ,
343- TRANSPORT_SUMMARY_WIDTH , _ ("[rejected]" ), REFCOL_WIDTH , remote ,
344- pretty_ref , _ ("(non-fast-forward)" ));
350+ strbuf_addf (display , "! %-*s %-*s -> %s %s" ,
351+ TRANSPORT_SUMMARY_WIDTH , _ ("[rejected]" ),
352+ REFCOL_WIDTH , remote , pretty_ref ,
353+ _ ("(non-fast-forward)" ));
345354 return 1 ;
346355 }
347356}
@@ -363,8 +372,8 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
363372{
364373 FILE * fp ;
365374 struct commit * commit ;
366- int url_len , i , note_len , shown_url = 0 , rc = 0 ;
367- char note [ 1024 ] ;
375+ int url_len , i , shown_url = 0 , rc = 0 ;
376+ struct strbuf note = STRBUF_INIT ;
368377 const char * what , * kind ;
369378 struct ref * rm ;
370379 char * url , * filename = dry_run ? "/dev/null" : git_path ("FETCH_HEAD" );
@@ -427,41 +436,42 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
427436 if (4 < i && !strncmp (".git" , url + i - 3 , 4 ))
428437 url_len = i - 3 ;
429438
430- note_len = 0 ;
439+ strbuf_reset ( & note ) ;
431440 if (* what ) {
432441 if (* kind )
433- note_len += sprintf (note + note_len , "%s " ,
434- kind );
435- note_len += sprintf (note + note_len , "'%s' of " , what );
442+ strbuf_addf (& note , "%s " , kind );
443+ strbuf_addf (& note , "'%s' of " , what );
436444 }
437- note [note_len ] = '\0' ;
438445 fprintf (fp , "%s\t%s\t%s" ,
439446 sha1_to_hex (commit ? commit -> object .sha1 :
440447 rm -> old_sha1 ),
441448 rm -> merge ? "" : "not-for-merge" ,
442- note );
449+ note . buf );
443450 for (i = 0 ; i < url_len ; ++ i )
444451 if ('\n' == url [i ])
445452 fputs ("\\n" , fp );
446453 else
447454 fputc (url [i ], fp );
448455 fputc ('\n' , fp );
449456
457+ strbuf_reset (& note );
450458 if (ref ) {
451- rc |= update_local_ref (ref , what , note );
459+ rc |= update_local_ref (ref , what , & note );
452460 free (ref );
453461 } else
454- sprintf (note , "* %-*s %-*s -> FETCH_HEAD" ,
455- TRANSPORT_SUMMARY_WIDTH , * kind ? kind : "branch" ,
456- REFCOL_WIDTH , * what ? what : "HEAD" );
457- if (* note ) {
462+ strbuf_addf (& note , "* %-*s %-*s -> FETCH_HEAD" ,
463+ TRANSPORT_SUMMARY_WIDTH ,
464+ * kind ? kind : "branch" ,
465+ REFCOL_WIDTH ,
466+ * what ? what : "HEAD" );
467+ if (note .len ) {
458468 if (verbosity >= 0 && !shown_url ) {
459469 fprintf (stderr , _ ("From %.*s\n" ),
460470 url_len , url );
461471 shown_url = 1 ;
462472 }
463473 if (verbosity >= 0 )
464- fprintf (stderr , " %s\n" , note );
474+ fprintf (stderr , " %s\n" , note . buf );
465475 }
466476 }
467477
@@ -471,6 +481,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
471481 "branches" ), remote_name );
472482
473483 abort :
484+ strbuf_release (& note );
474485 free (url );
475486 fclose (fp );
476487 return rc ;
0 commit comments