@@ -239,23 +239,23 @@ static int s_update_ref(const char *action,
239
239
240
240
static int update_local_ref (struct ref * ref ,
241
241
const char * remote ,
242
- char * display )
242
+ struct strbuf * display )
243
243
{
244
244
struct commit * current = NULL , * updated ;
245
245
enum object_type type ;
246
246
struct branch * current_branch = branch_get (NULL );
247
247
const char * pretty_ref = prettify_refname (ref -> name );
248
248
249
- * display = 0 ;
250
249
type = sha1_object_info (ref -> new_sha1 , NULL );
251
250
if (type < 0 )
252
251
die (_ ("object %s not found" ), sha1_to_hex (ref -> new_sha1 ));
253
252
254
253
if (!hashcmp (ref -> old_sha1 , ref -> new_sha1 )) {
255
254
if (verbosity > 0 )
256
- sprintf (display , "= %-*s %-*s -> %s" , TRANSPORT_SUMMARY_WIDTH ,
257
- _ ("[up to date]" ), REFCOL_WIDTH , remote ,
258
- pretty_ref );
255
+ strbuf_addf (display , "= %-*s %-*s -> %s" ,
256
+ TRANSPORT_SUMMARY_WIDTH ,
257
+ _ ("[up to date]" ), REFCOL_WIDTH ,
258
+ remote , pretty_ref );
259
259
return 0 ;
260
260
}
261
261
@@ -267,19 +267,22 @@ static int update_local_ref(struct ref *ref,
267
267
* If this is the head, and it's not okay to update
268
268
* the head, and the old value of the head isn't empty...
269
269
*/
270
- sprintf (display , _ ("! %-*s %-*s -> %s (can't fetch in current branch)" ),
271
- TRANSPORT_SUMMARY_WIDTH , _ ("[rejected]" ), REFCOL_WIDTH , remote ,
272
- pretty_ref );
270
+ strbuf_addf (display ,
271
+ _ ("! %-*s %-*s -> %s (can't fetch in current branch)" ),
272
+ TRANSPORT_SUMMARY_WIDTH , _ ("[rejected]" ),
273
+ REFCOL_WIDTH , remote , pretty_ref );
273
274
return 1 ;
274
275
}
275
276
276
277
if (!is_null_sha1 (ref -> old_sha1 ) &&
277
278
!prefixcmp (ref -> name , "refs/tags/" )) {
278
279
int r ;
279
280
r = s_update_ref ("updating tag" , ref , 0 );
280
- sprintf (display , "%c %-*s %-*s -> %s%s" , r ? '!' : '-' ,
281
- TRANSPORT_SUMMARY_WIDTH , _ ("[tag update]" ), REFCOL_WIDTH , remote ,
282
- pretty_ref , r ? _ (" (unable to update local ref)" ) : "" );
281
+ strbuf_addf (display , "%c %-*s %-*s -> %s%s" ,
282
+ r ? '!' : '-' ,
283
+ TRANSPORT_SUMMARY_WIDTH , _ ("[tag update]" ),
284
+ REFCOL_WIDTH , remote , pretty_ref ,
285
+ r ? _ (" (unable to update local ref)" ) : "" );
283
286
return r ;
284
287
}
285
288
@@ -302,9 +305,11 @@ static int update_local_ref(struct ref *ref,
302
305
}
303
306
304
307
r = s_update_ref (msg , ref , 0 );
305
- sprintf (display , "%c %-*s %-*s -> %s%s" , r ? '!' : '*' ,
306
- TRANSPORT_SUMMARY_WIDTH , what , REFCOL_WIDTH , remote , pretty_ref ,
307
- r ? _ (" (unable to update local ref)" ) : "" );
308
+ strbuf_addf (display , "%c %-*s %-*s -> %s%s" ,
309
+ r ? '!' : '*' ,
310
+ TRANSPORT_SUMMARY_WIDTH , what ,
311
+ REFCOL_WIDTH , remote , pretty_ref ,
312
+ r ? _ (" (unable to update local ref)" ) : "" );
308
313
return r ;
309
314
}
310
315
@@ -318,9 +323,11 @@ static int update_local_ref(struct ref *ref,
318
323
(recurse_submodules != RECURSE_SUBMODULES_ON ))
319
324
check_for_new_submodule_commits (ref -> new_sha1 );
320
325
r = s_update_ref ("fast-forward" , ref , 1 );
321
- sprintf (display , "%c %-*s %-*s -> %s%s" , r ? '!' : ' ' ,
322
- TRANSPORT_SUMMARY_WIDTH , quickref , REFCOL_WIDTH , remote ,
323
- pretty_ref , r ? _ (" (unable to update local ref)" ) : "" );
326
+ strbuf_addf (display , "%c %-*s %-*s -> %s%s" ,
327
+ r ? '!' : ' ' ,
328
+ TRANSPORT_SUMMARY_WIDTH , quickref ,
329
+ REFCOL_WIDTH , remote , pretty_ref ,
330
+ r ? _ (" (unable to update local ref)" ) : "" );
324
331
return r ;
325
332
} else if (force || ref -> force ) {
326
333
char quickref [84 ];
@@ -332,15 +339,17 @@ static int update_local_ref(struct ref *ref,
332
339
(recurse_submodules != RECURSE_SUBMODULES_ON ))
333
340
check_for_new_submodule_commits (ref -> new_sha1 );
334
341
r = s_update_ref ("forced-update" , ref , 1 );
335
- sprintf (display , "%c %-*s %-*s -> %s (%s)" , r ? '!' : '+' ,
336
- TRANSPORT_SUMMARY_WIDTH , quickref , REFCOL_WIDTH , remote ,
337
- pretty_ref ,
338
- r ? _ ("unable to update local ref" ) : _ ("forced update" ));
342
+ strbuf_addf (display , "%c %-*s %-*s -> %s (%s)" ,
343
+ r ? '!' : '+' ,
344
+ TRANSPORT_SUMMARY_WIDTH , quickref ,
345
+ REFCOL_WIDTH , remote , pretty_ref ,
346
+ r ? _ ("unable to update local ref" ) : _ ("forced update" ));
339
347
return r ;
340
348
} else {
341
- sprintf (display , "! %-*s %-*s -> %s %s" ,
342
- TRANSPORT_SUMMARY_WIDTH , _ ("[rejected]" ), REFCOL_WIDTH , remote ,
343
- pretty_ref , _ ("(non-fast-forward)" ));
349
+ strbuf_addf (display , "! %-*s %-*s -> %s %s" ,
350
+ TRANSPORT_SUMMARY_WIDTH , _ ("[rejected]" ),
351
+ REFCOL_WIDTH , remote , pretty_ref ,
352
+ _ ("(non-fast-forward)" ));
344
353
return 1 ;
345
354
}
346
355
}
@@ -350,8 +359,8 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
350
359
{
351
360
FILE * fp ;
352
361
struct commit * commit ;
353
- int url_len , i , note_len , shown_url = 0 , rc = 0 ;
354
- char note [ 1024 ] ;
362
+ int url_len , i , shown_url = 0 , rc = 0 ;
363
+ struct strbuf note = STRBUF_INIT ;
355
364
const char * what , * kind ;
356
365
struct ref * rm ;
357
366
char * url , * filename = dry_run ? "/dev/null" : git_path ("FETCH_HEAD" );
@@ -407,41 +416,42 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
407
416
if (4 < i && !strncmp (".git" , url + i - 3 , 4 ))
408
417
url_len = i - 3 ;
409
418
410
- note_len = 0 ;
419
+ strbuf_reset ( & note ) ;
411
420
if (* what ) {
412
421
if (* kind )
413
- note_len += sprintf (note + note_len , "%s " ,
414
- kind );
415
- note_len += sprintf (note + note_len , "'%s' of " , what );
422
+ strbuf_addf (& note , "%s " , kind );
423
+ strbuf_addf (& note , "'%s' of " , what );
416
424
}
417
- note [note_len ] = '\0' ;
418
425
fprintf (fp , "%s\t%s\t%s" ,
419
426
sha1_to_hex (commit ? commit -> object .sha1 :
420
427
rm -> old_sha1 ),
421
428
rm -> merge ? "" : "not-for-merge" ,
422
- note );
429
+ note . buf );
423
430
for (i = 0 ; i < url_len ; ++ i )
424
431
if ('\n' == url [i ])
425
432
fputs ("\\n" , fp );
426
433
else
427
434
fputc (url [i ], fp );
428
435
fputc ('\n' , fp );
429
436
437
+ strbuf_reset (& note );
430
438
if (ref ) {
431
- rc |= update_local_ref (ref , what , note );
439
+ rc |= update_local_ref (ref , what , & note );
432
440
free (ref );
433
441
} else
434
- sprintf (note , "* %-*s %-*s -> FETCH_HEAD" ,
435
- TRANSPORT_SUMMARY_WIDTH , * kind ? kind : "branch" ,
436
- REFCOL_WIDTH , * what ? what : "HEAD" );
437
- if (* note ) {
442
+ strbuf_addf (& note , "* %-*s %-*s -> FETCH_HEAD" ,
443
+ TRANSPORT_SUMMARY_WIDTH ,
444
+ * kind ? kind : "branch" ,
445
+ REFCOL_WIDTH ,
446
+ * what ? what : "HEAD" );
447
+ if (note .len ) {
438
448
if (verbosity >= 0 && !shown_url ) {
439
449
fprintf (stderr , _ ("From %.*s\n" ),
440
450
url_len , url );
441
451
shown_url = 1 ;
442
452
}
443
453
if (verbosity >= 0 )
444
- fprintf (stderr , " %s\n" , note );
454
+ fprintf (stderr , " %s\n" , note . buf );
445
455
}
446
456
}
447
457
free (url );
@@ -450,6 +460,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
450
460
error (_ ("some local refs could not be updated; try running\n"
451
461
" 'git remote prune %s' to remove any old, conflicting "
452
462
"branches" ), remote_name );
463
+ strbuf_release (& note );
453
464
return rc ;
454
465
}
455
466
0 commit comments