summaryrefslogtreecommitdiff
path: root/games-strategy/gwp/files/gwp-0.4.0-exec-stack.patch
diff options
context:
space:
mode:
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.patch89
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 );
+