@@ -1599,6 +1599,18 @@ static void show_pack_info(int stat_only)
1599
1599
}
1600
1600
}
1601
1601
1602
+ static const char * derive_filename (const char * pack_name , const char * suffix ,
1603
+ struct strbuf * buf )
1604
+ {
1605
+ size_t len ;
1606
+ if (!strip_suffix (pack_name , ".pack" , & len ))
1607
+ die (_ ("packfile name '%s' does not end with '.pack'" ),
1608
+ pack_name );
1609
+ strbuf_add (buf , pack_name , len );
1610
+ strbuf_addstr (buf , suffix );
1611
+ return buf -> buf ;
1612
+ }
1613
+
1602
1614
int cmd_index_pack (int argc , const char * * argv , const char * prefix )
1603
1615
{
1604
1616
int i , fix_thin_pack = 0 , verify = 0 , stat_only = 0 ;
@@ -1707,24 +1719,11 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
1707
1719
usage (index_pack_usage );
1708
1720
if (fix_thin_pack && !from_stdin )
1709
1721
die (_ ("--fix-thin cannot be used without --stdin" ));
1710
- if (!index_name && pack_name ) {
1711
- size_t len ;
1712
- if (!strip_suffix (pack_name , ".pack" , & len ))
1713
- die (_ ("packfile name '%s' does not end with '.pack'" ),
1714
- pack_name );
1715
- strbuf_add (& index_name_buf , pack_name , len );
1716
- strbuf_addstr (& index_name_buf , ".idx" );
1717
- index_name = index_name_buf .buf ;
1718
- }
1719
- if (keep_msg && !keep_name && pack_name ) {
1720
- size_t len ;
1721
- if (!strip_suffix (pack_name , ".pack" , & len ))
1722
- die (_ ("packfile name '%s' does not end with '.pack'" ),
1723
- pack_name );
1724
- strbuf_add (& keep_name_buf , pack_name , len );
1725
- strbuf_addstr (& keep_name_buf , ".idx" );
1726
- keep_name = keep_name_buf .buf ;
1727
- }
1722
+ if (!index_name && pack_name )
1723
+ index_name = derive_filename (pack_name , ".idx" , & index_name_buf );
1724
+ if (keep_msg && !keep_name && pack_name )
1725
+ keep_name = derive_filename (pack_name , ".keep" , & keep_name_buf );
1726
+
1728
1727
if (verify ) {
1729
1728
if (!index_name )
1730
1729
die (_ ("--verify with no packfile name given" ));
0 commit comments