@@ -999,15 +999,25 @@ static int show(int argc, const char **argv)
999999 info .list = & info_list ;
10001000 for (; argc ; argc -- , argv ++ ) {
10011001 int i ;
1002+ const char * * url ;
1003+ int url_nr ;
10021004
10031005 get_remote_ref_states (* argv , & states , query_flag );
10041006
10051007 printf ("* remote %s\n" , * argv );
1006- if (states .remote -> url_nr ) {
1007- for (i = 0 ; i < states .remote -> url_nr ; i ++ )
1008- printf (" URL: %s\n" , states .remote -> url [i ]);
1009- } else
1010- printf (" URL: %s\n" , "(no URL)" );
1008+ printf (" Fetch URL: %s\n" , states .remote -> url_nr > 0 ?
1009+ states .remote -> url [0 ] : "(no URL)" );
1010+ if (states .remote -> pushurl_nr ) {
1011+ url = states .remote -> pushurl ;
1012+ url_nr = states .remote -> pushurl_nr ;
1013+ } else {
1014+ url = states .remote -> url ;
1015+ url_nr = states .remote -> url_nr ;
1016+ }
1017+ for (i = 0 ; i < url_nr ; i ++ )
1018+ printf (" Push URL: %s\n" , url [i ]);
1019+ if (!i )
1020+ printf (" Push URL: %s\n" , "(no URL)" );
10111021 if (no_query )
10121022 printf (" HEAD branch: (not queried)\n" );
10131023 else if (!states .heads .nr )
@@ -1266,22 +1276,42 @@ static int update(int argc, const char **argv)
12661276static int get_one_entry (struct remote * remote , void * priv )
12671277{
12681278 struct string_list * list = priv ;
1279+ const char * * url ;
1280+ int i , url_nr ;
1281+ void * * utilp ;
12691282
12701283 if (remote -> url_nr > 0 ) {
1271- int i ;
1272-
1273- for ( i = 0 ; i < remote -> url_nr ; i ++ )
1274- string_list_append ( remote -> name , list ) -> util = ( void * ) remote -> url [ i ] ;
1284+ utilp = & ( string_list_append ( remote -> name , list ) -> util ) ;
1285+ * utilp = xmalloc ( strlen ( remote -> url [ 0 ]) + strlen ( " (fetch)" ) + 1 );
1286+ strcpy (( char * ) * utilp , remote -> url [ 0 ]);
1287+ strcat (( char * ) * utilp , " (fetch)" ) ;
12751288 } else
12761289 string_list_append (remote -> name , list )-> util = NULL ;
1290+ if (remote -> pushurl_nr ) {
1291+ url = remote -> pushurl ;
1292+ url_nr = remote -> pushurl_nr ;
1293+ } else {
1294+ url = remote -> url ;
1295+ url_nr = remote -> url_nr ;
1296+ }
1297+ for (i = 0 ; i < url_nr ; i ++ )
1298+ {
1299+ utilp = & (string_list_append (remote -> name , list )-> util );
1300+ * utilp = xmalloc (strlen (url [i ])+ strlen (" (push)" )+ 1 );
1301+ strcpy ((char * ) * utilp , url [i ]);
1302+ strcat ((char * ) * utilp , " (push)" );
1303+ }
12771304
12781305 return 0 ;
12791306}
12801307
12811308static int show_all (void )
12821309{
12831310 struct string_list list = { NULL , 0 , 0 };
1284- int result = for_each_remote (get_one_entry , & list );
1311+ int result ;
1312+
1313+ list .strdup_strings = 1 ;
1314+ result = for_each_remote (get_one_entry , & list );
12851315
12861316 if (!result ) {
12871317 int i ;
@@ -1299,6 +1329,7 @@ static int show_all(void)
12991329 }
13001330 }
13011331 }
1332+ string_list_clear (& list , 1 );
13021333 return result ;
13031334}
13041335
0 commit comments