@@ -439,54 +439,44 @@ static int for_each_filter_refs(const char *refname, const char *referent,
439439struct warn_if_dangling_data {
440440 struct ref_store * refs ;
441441 FILE * fp ;
442- const char * refname ;
443442 const struct string_list * refnames ;
444- const char * msg_fmt ;
443+ const char * indent ;
444+ int dry_run ;
445445};
446446
447447static int warn_if_dangling_symref (const char * refname , const char * referent UNUSED ,
448448 const struct object_id * oid UNUSED ,
449449 int flags , void * cb_data )
450450{
451451 struct warn_if_dangling_data * d = cb_data ;
452- const char * resolves_to ;
452+ const char * resolves_to , * msg ;
453453
454454 if (!(flags & REF_ISSYMREF ))
455455 return 0 ;
456456
457457 resolves_to = refs_resolve_ref_unsafe (d -> refs , refname , 0 , NULL , NULL );
458458 if (!resolves_to
459- || (d -> refname
460- ? strcmp (resolves_to , d -> refname )
461- : !string_list_has_string (d -> refnames , resolves_to ))) {
459+ || !string_list_has_string (d -> refnames , resolves_to )) {
462460 return 0 ;
463461 }
464462
465- fprintf (d -> fp , d -> msg_fmt , refname );
466- fputc ('\n' , d -> fp );
463+ msg = d -> dry_run
464+ ? _ ("%s%s will become dangling after %s is deleted\n" )
465+ : _ ("%s%s has become dangling after %s was deleted\n" );
466+ fprintf (d -> fp , msg , d -> indent , refname , resolves_to );
467467 return 0 ;
468468}
469469
470- void refs_warn_dangling_symref (struct ref_store * refs , FILE * fp ,
471- const char * msg_fmt , const char * refname )
472- {
473- struct warn_if_dangling_data data = {
474- .refs = refs ,
475- .fp = fp ,
476- .refname = refname ,
477- .msg_fmt = msg_fmt ,
478- };
479- refs_for_each_rawref (refs , warn_if_dangling_symref , & data );
480- }
481-
482470void refs_warn_dangling_symrefs (struct ref_store * refs , FILE * fp ,
483- const char * msg_fmt , const struct string_list * refnames )
471+ const char * indent , int dry_run ,
472+ const struct string_list * refnames )
484473{
485474 struct warn_if_dangling_data data = {
486475 .refs = refs ,
487476 .fp = fp ,
488477 .refnames = refnames ,
489- .msg_fmt = msg_fmt ,
478+ .indent = indent ,
479+ .dry_run = dry_run ,
490480 };
491481 refs_for_each_rawref (refs , warn_if_dangling_symref , & data );
492482}
0 commit comments