diff options
Diffstat (limited to 'games-strategy/gwp/files/gwp-0.4.0-exec-stack.patch')
-rw-r--r-- | games-strategy/gwp/files/gwp-0.4.0-exec-stack.patch | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/games-strategy/gwp/files/gwp-0.4.0-exec-stack.patch b/games-strategy/gwp/files/gwp-0.4.0-exec-stack.patch new file mode 100644 index 000000000000..1458b7ba1dfd --- /dev/null +++ b/games-strategy/gwp/files/gwp-0.4.0-exec-stack.patch @@ -0,0 +1,89 @@ +--- src/starchart.c ++++ src/starchart.c +@@ -3187,10 +3187,16 @@ + /** + * Initializes starchart constellations. + */ ++static GSList *planets; ++ ++static void add_item (gpointer key, gpointer value, gpointer user_data) { ++ /* GSList *p_list = (GSList *)user_data; */ ++ planets = g_slist_append (planets, value); ++} ++ + static void + init_starchart_constellations (void) + { +- GSList *planets = NULL; + GSList *ppq[TOTAL_QUADS]; + GSList *list_nearby = NULL; + GwpPlanet *planet_a, *planet_b; +@@ -3199,10 +3205,6 @@ + gdouble wx, wy; + gdouble ax, ay, bx, by, zoom; + +- static void add_item (gpointer key, gpointer value, gpointer user_data) { +- /* GSList *p_list = (GSList *)user_data; */ +- planets = g_slist_append (planets, value); +- } + + g_hash_table_foreach (planet_list, (GHFunc)add_item, NULL); + +--- src/vcr.c ++++ src/vcr.c +@@ -2687,12 +2687,29 @@ + return( retval ); + } + ++static gchar *name; ++ ++static void foreach_func( gpointer key, gpointer value, gpointer user_data ) ++{ ++ GwpShip *ship = GWP_SHIP( value ); ++ GtkComboBox *box = GTK_COMBO_BOX( lookup_widget( "vcr_comboboxentry_sel_ext_shp_a" ) ); ++ gint *idlist = (gint *)g_object_get_data(G_OBJECT(lookup_widget("vcr_comboboxentry_sel_ext_shp_a")), "shipidlist"); ++ gint curr = idlist[0]; ++ ++ if( gwp_ship_is_mine( ship ) ) ++ { ++ curr++; ++ idlist[curr] = gwp_object_get_id( GWP_OBJECT(ship) ); ++ idlist[0]++; ++ g_sprintf( name, "%03d: ", idlist[curr] ); ++ strncat( name, gwp_object_get_name (GWP_OBJECT(ship)), 50 ); ++ gtk_combo_box_append_text( box, name ); ++ } ++} + + void vcr_populate_ship_a_list( GtkWidget *widget, gpointer user_data ) + { +- gchar *name; + gint *idlist; +- static void foreach_func( gpointer key, gpointer value, gpointer user_data ); + + /* test if list is already populated */ + idlist = (gint *)g_object_get_data(G_OBJECT(lookup_widget("vcr_comboboxentry_sel_ext_shp_a")), "shipidlist"); +@@ -2708,23 +2725,7 @@ + GtkWidget *combox = lookup_widget("vcr_comboboxentry_sel_ext_shp_a"); + g_object_set_data(G_OBJECT(combox), "shipidlist", idlist ); + +- void foreach_func( gpointer key, gpointer value, gpointer user_data ) +- { +- GwpShip *ship = GWP_SHIP( value ); +- GtkComboBox *box = GTK_COMBO_BOX( lookup_widget( "vcr_comboboxentry_sel_ext_shp_a" ) ); +- gint *idlist = (gint *)g_object_get_data(G_OBJECT(lookup_widget("vcr_comboboxentry_sel_ext_shp_a")), "shipidlist"); +- gint curr = idlist[0]; + +- if( gwp_ship_is_mine( ship ) ) +- { +- curr++; +- idlist[curr] = gwp_object_get_id( GWP_OBJECT(ship) ); +- idlist[0]++; +- g_sprintf( name, "%03d: ", idlist[curr] ); +- strncat( name, gwp_object_get_name (GWP_OBJECT(ship)), 50 ); +- gtk_combo_box_append_text( box, name ); +- } +- } + + g_hash_table_foreach( ship_list, (GHFunc) foreach_func, user_data ); + |