aboutsummaryrefslogtreecommitdiffstats
path: root/www
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2003-07-03 05:36:54 +0800
committermarcus <marcus@FreeBSD.org>2003-07-03 05:36:54 +0800
commitc64b410e38c75615a578950e4610552346f1af2c (patch)
tree40dd09d60019e1124fdeb654870dfe00f5298c61 /www
parent05eecfde03ec55439cc341b28a464d4572705017 (diff)
downloadfreebsd-ports-gnome-c64b410e38c75615a578950e4610552346f1af2c.tar.gz
freebsd-ports-gnome-c64b410e38c75615a578950e4610552346f1af2c.tar.zst
freebsd-ports-gnome-c64b410e38c75615a578950e4610552346f1af2c.zip
Add a better patch to fix the va_list problem.
Obtained from: http://bugzilla.gnome.org/show_bug.cgi?id=116131
Diffstat (limited to 'www')
-rw-r--r--www/epiphany/files/patch-lib_ephy-node.c68
1 files changed, 57 insertions, 11 deletions
diff --git a/www/epiphany/files/patch-lib_ephy-node.c b/www/epiphany/files/patch-lib_ephy-node.c
index 2777286b0dc3..cbcc45b39905 100644
--- a/www/epiphany/files/patch-lib_ephy-node.c
+++ b/www/epiphany/files/patch-lib_ephy-node.c
@@ -1,21 +1,67 @@
---- lib/ephy-node.c.orig Mon Jun 9 19:02:09 2003
-+++ lib/ephy-node.c Sun Jun 29 02:01:59 2003
-@@ -115,12 +115,16 @@
+Index: lib/ephy-node.c
+===================================================================
+RCS file: /cvs/gnome/epiphany/lib/ephy-node.c,v
+retrieving revision 1.19
+diff -u -p -r1.19 ephy-node.c
+--- lib/ephy-node.c 9 Jun 2003 13:06:19 -0000 1.19
++++ lib/ephy-node.c 28 Jun 2003 22:46:29 -0000
+@@ -64,6 +64,12 @@ struct EphyNode
+ EphyNodeDb *db;
+ };
+
++typedef struct
++{
++ EphyNodeSignalType type;
++ va_list valist;
++} ENESCData;
++
+ /* evillish hacks to temporarily readlock->writelock and v.v. */
+ static inline void
+ write_lock_to_read_lock (EphyNode *node)
+@@ -113,14 +119,16 @@ int_hash (gconstpointer a)
+ }
+
static void
- callback (long id, EphyNodeSignalData *data, gpointer *user_data)
+-callback (long id, EphyNodeSignalData *data, gpointer *user_data)
++callback (long id, EphyNodeSignalData *data, gpointer *dummy)
{
- va_list valist;
+- EphyNodeSignalType type = GPOINTER_TO_INT (user_data[1]);
++ ENESCData *user_data;
+ va_list valist;
- EphyNodeSignalType type = GPOINTER_TO_INT (user_data[1]);
- if (data->type != type) return;
+- if (data->type != type) return;
++ user_data = (ENESCData *) dummy;
- va_copy(valist, user_data[0]);
-+#if __FreeBSD_version >= 500040
-+ va_copy(valist, user_data[0]);
-+#else
-+ valist = (va_list) user_data[0];
-+#endif
++ valist = user_data->valist;
++
++ if (data->type != user_data->type) return;
switch (data->type)
{
+@@ -155,18 +163,17 @@ callback (long id, EphyNodeSignalData *d
+ static void
+ ephy_node_emit_signal (EphyNode *node, EphyNodeSignalType type, ...)
+ {
+- va_list valist;
+- gpointer data[2];
++ ENESCData data;
++
++ va_start (data.valist, type);
+
+- va_start (valist, type);
++ data.type = type;
+
+- data[0] = (gpointer)valist;
+- data[1] = GINT_TO_POINTER (type);
+ g_hash_table_foreach (node->signals,
+ (GHFunc) callback,
+- data);
++ &data);
+
+- va_end (valist);
++ va_end (data.valist);
+ }
+
+ static void