@@ -999,15 +999,25 @@ static int show(int argc, const char **argv)
999
999
info .list = & info_list ;
1000
1000
for (; argc ; argc -- , argv ++ ) {
1001
1001
int i ;
1002
+ const char * * url ;
1003
+ int url_nr ;
1002
1004
1003
1005
get_remote_ref_states (* argv , & states , query_flag );
1004
1006
1005
1007
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)" );
1011
1021
if (no_query )
1012
1022
printf (" HEAD branch: (not queried)\n" );
1013
1023
else if (!states .heads .nr )
@@ -1266,22 +1276,42 @@ static int update(int argc, const char **argv)
1266
1276
static int get_one_entry (struct remote * remote , void * priv )
1267
1277
{
1268
1278
struct string_list * list = priv ;
1279
+ const char * * url ;
1280
+ int i , url_nr ;
1281
+ void * * utilp ;
1269
1282
1270
1283
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)" ) ;
1275
1288
} else
1276
1289
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
+ }
1277
1304
1278
1305
return 0 ;
1279
1306
}
1280
1307
1281
1308
static int show_all (void )
1282
1309
{
1283
1310
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 );
1285
1315
1286
1316
if (!result ) {
1287
1317
int i ;
@@ -1299,6 +1329,7 @@ static int show_all(void)
1299
1329
}
1300
1330
}
1301
1331
}
1332
+ string_list_clear (& list , 1 );
1302
1333
return result ;
1303
1334
}
1304
1335
0 commit comments