# HG changeset patch
# Node ID 6d2eaf1f359c
# Parent  53e4815ef254
diff --git a/ChangeLog.API b/ChangeLog.API
--- a/ChangeLog.API
+++ b/ChangeLog.API
@@ -367,6 +367,7 @@ version 3.0.0 (??/??/????):
 		* purple_buddy_icons_find_custom_icon
 		* purple_buddy_icons_set_custom_icon
 		* purple_build_dir. Use g_mkdir_with_parents instead
+		* PurpleCallback. Use GCallback instead
 		* PurpleCertificateScheme
 		* PURPLE_CERTIFICATE_SCHEME_HAS_FUNC
 		* purple_certificate_check_signature_chain
diff --git a/finch/gntblist.c b/finch/gntblist.c
--- a/finch/gntblist.c
+++ b/finch/gntblist.c
@@ -965,7 +965,7 @@ append_proto_menu(GntMenu *menu, PurpleC
 }
 
 static void
-add_custom_action(GntMenu *menu, const char *label, PurpleCallback callback,
+add_custom_action(GntMenu *menu, const char *label, GCallback callback,
 		gpointer data)
 {
 	PurpleActionMenu *action = purple_action_menu_new(label, callback, data, NULL);
@@ -1071,7 +1071,7 @@ create_chat_menu(GntMenu *menu, PurpleCh
 			purple_account_get_connection(purple_chat_get_account(chat)),
 			(PurpleBlistNode*)chat);
 
-	add_custom_action(menu, _("Edit Settings"), (PurpleCallback)chat_components_edit, chat);
+	add_custom_action(menu, _("Edit Settings"), (GCallback)chat_components_edit, chat);
 }
 
 static void
diff --git a/finch/gntmenuutil.h b/finch/gntmenuutil.h
--- a/finch/gntmenuutil.h
+++ b/finch/gntmenuutil.h
@@ -40,7 +40,7 @@
  * @menu:   the GntMenu to add to
  * @action: the PurpleActionMenu to add
  * @ctx:    the callback context, passed as the first argument to
- *               the PurpleActionMenu's PurpleCallback function.
+ *               the PurpleActionMenu's GCallback function.
  *
  * Add a PurpleActionMenu to a GntMenu.
  */
diff --git a/libpurple/account.c b/libpurple/account.c
--- a/libpurple/account.c
+++ b/libpurple/account.c
@@ -124,7 +124,7 @@ typedef struct
 typedef struct
 {
 	PurpleAccount *account;
-	PurpleCallback cb;
+	GCallback cb;
 	gpointer data;
 } PurpleCallbackBundle;
 
diff --git a/libpurple/signals.h b/libpurple/signals.h
--- a/libpurple/signals.h
+++ b/libpurple/signals.h
@@ -34,27 +34,20 @@
  * PURPLE_CALLBACK:
  * @func: a function pointer.
  *
- * Cast a function pointer to #PurpleCallback.
+ * Cast a function pointer to #GCallback.
  */
-#define PURPLE_CALLBACK(func) ((PurpleCallback)(func))
-
-/**
- * PurpleCallback:
- *
- * A generic function pointer type to represent a callback function.
- */
-typedef void (*PurpleCallback)(void);
+#define PURPLE_CALLBACK(func) ((GCallback)(func))
 
 /**
  * PurpleSignalMarshalFunc:
- * @cb: The #PurpleCallback to call.
+ * @cb: The #GCallback to call.
  * @args: The arguments to the function.
  * @data: Userdata to pass to @cb.
  * @return_val: (optional) (out): A return address for a return value.
  *
  * A generic function pointer type used to register signals.
  */
-typedef void (*PurpleSignalMarshalFunc)(PurpleCallback cb, va_list args,
+typedef void (*PurpleSignalMarshalFunc)(GCallback cb, va_list args,
 									  void *data, void **return_val);
 
 G_BEGIN_DECLS
@@ -166,7 +159,7 @@ void purple_signal_get_types(void *insta
  * Returns: The signal handler ID.
  */
 gulong purple_signal_connect_priority(void *instance, const char *signal,
-	void *handle, PurpleCallback func, void *data, int priority);
+	void *handle, GCallback func, void *data, int priority);
 
 /**
  * purple_signal_connect:
@@ -187,7 +180,7 @@ gulong purple_signal_connect_priority(vo
  * Returns: The signal handler ID.
  */
 gulong purple_signal_connect(void *instance, const char *signal,
-	void *handle, PurpleCallback func, void *data);
+	void *handle, GCallback func, void *data);
 
 /**
  * purple_signal_connect_priority_vargs:
@@ -214,7 +207,7 @@ gulong purple_signal_connect(void *insta
  * Returns: The signal handler ID.
  */
 gulong purple_signal_connect_priority_vargs(void *instance, const char *signal,
-	void *handle, PurpleCallback func, void *data, int priority);
+	void *handle, GCallback func, void *data, int priority);
 
 /**
  * purple_signal_connect_vargs:
@@ -238,7 +231,7 @@ gulong purple_signal_connect_priority_va
  * Returns: The signal handler ID.
  */
 gulong purple_signal_connect_vargs(void *instance, const char *signal,
-	void *handle, PurpleCallback func, void *data);
+	void *handle, GCallback func, void *data);
 
 /**
  * purple_signal_disconnect:
@@ -252,7 +245,7 @@ gulong purple_signal_connect_vargs(void 
  * See purple_signal_connect()
  */
 void purple_signal_disconnect(void *instance, const char *signal,
-							void *handle, PurpleCallback func);
+							void *handle, GCallback func);
 
 /**
  * purple_signals_disconnect_by_handle:
@@ -345,7 +338,7 @@ void purple_signals_uninit(void);
  * A purple marshaller function for use with signals with no arguments.
  */
 void purple_marshal_VOID(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__INT:
@@ -358,7 +351,7 @@ void purple_marshal_VOID(
  * argument.
  */
 void purple_marshal_VOID__INT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__INT_INT:
@@ -371,7 +364,7 @@ void purple_marshal_VOID__INT(
  * arguments.
  */
 void purple_marshal_VOID__INT_INT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER:
@@ -384,7 +377,7 @@ void purple_marshal_VOID__INT_INT(
  * argument.
  */
 void purple_marshal_VOID__POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_UINT:
@@ -397,7 +390,7 @@ void purple_marshal_VOID__POINTER(
  * an unsigned integer argument.
  */
 void purple_marshal_VOID__POINTER_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_INT_INT:
@@ -410,7 +403,7 @@ void purple_marshal_VOID__POINTER_UINT(
  * two integer arguments.
  */
 void purple_marshal_VOID__POINTER_INT_INT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_INT_POINTER:
@@ -423,7 +416,7 @@ void purple_marshal_VOID__POINTER_INT_IN
  * integer, and then another pointer argument.
  */
 void purple_marshal_VOID__POINTER_INT_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER:
@@ -436,7 +429,7 @@ void purple_marshal_VOID__POINTER_INT_PO
  * arguments.
  */
 void purple_marshal_VOID__POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER_UINT:
@@ -449,7 +442,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * and an unsigned integer argument.
  */
 void purple_marshal_VOID__POINTER_POINTER_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER_UINT_UINT:
@@ -462,7 +455,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * and two unsigned integer arguments.
  */
 void purple_marshal_VOID__POINTER_POINTER_UINT_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_UINT_UINT:
@@ -475,7 +468,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * two unsigned integer arguments.
  */
 void purple_marshal_VOID__POINTER_UINT_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER_POINTER:
@@ -488,7 +481,7 @@ void purple_marshal_VOID__POINTER_UINT_U
  * arguments.
  */
 void purple_marshal_VOID__POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER:
@@ -501,7 +494,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * arguments.
  */
 void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER:
@@ -514,7 +507,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * arguments.
  */
 void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER_POINTER_UINT:
@@ -527,7 +520,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * and one unsigned integer arguments.
  */
 void purple_marshal_VOID__POINTER_POINTER_POINTER_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT:
@@ -540,7 +533,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * one unsigned integer arguments.
  */
 void purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT:
@@ -553,7 +546,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * and two unsigned integer arguments.
  */
 void purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_INT__INT:
@@ -566,7 +559,7 @@ void purple_marshal_VOID__POINTER_POINTE
  * and returns an integer.
  */
 void purple_marshal_INT__INT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_INT__INT_INT:
@@ -579,7 +572,7 @@ void purple_marshal_INT__INT(
  * arguments and returns an integer.
  */
 void purple_marshal_INT__INT_INT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_INT__POINTER_POINTER:
@@ -592,7 +585,7 @@ void purple_marshal_INT__INT_INT(
  * arguments and returns an integer.
  */
 void purple_marshal_INT__POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_INT__POINTER_POINTER_POINTER:
@@ -605,7 +598,7 @@ void purple_marshal_INT__POINTER_POINTER
  * arguments and returns an integer.
  */
 void purple_marshal_INT__POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER:
@@ -618,7 +611,7 @@ void purple_marshal_INT__POINTER_POINTER
  * arguments and returns an integer.
  */
 void purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER:
@@ -631,7 +624,7 @@ void purple_marshal_INT__POINTER_POINTER
  * argument and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_POINTER:
@@ -644,7 +637,7 @@ void purple_marshal_BOOLEAN__POINTER(
  * arguments and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_BOOLEAN:
@@ -657,7 +650,7 @@ void purple_marshal_BOOLEAN__POINTER_POI
  * boolean argument and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_BOOLEAN(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_POINTER_POINTER:
@@ -670,7 +663,7 @@ void purple_marshal_BOOLEAN__POINTER_BOO
  * arguments and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_POINTER_UINT:
@@ -683,7 +676,7 @@ void purple_marshal_BOOLEAN__POINTER_POI
  * one unsigned integer arguments and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_POINTER_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT:
@@ -696,7 +689,7 @@ void purple_marshal_BOOLEAN__POINTER_POI
  * and one unsigned integer arguments and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER:
@@ -709,7 +702,7 @@ void purple_marshal_BOOLEAN__POINTER_POI
  * arguments and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER:
@@ -722,7 +715,7 @@ void purple_marshal_BOOLEAN__POINTER_POI
  * arguments and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT:
@@ -735,7 +728,7 @@ void purple_marshal_BOOLEAN__POINTER_POI
  * and one unsigned integer arguments and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER:
@@ -748,7 +741,7 @@ void purple_marshal_BOOLEAN__POINTER_POI
  * arguments and returns a boolean.
  */
 void purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_BOOLEAN__INT_POINTER:
@@ -761,7 +754,7 @@ void purple_marshal_BOOLEAN__POINTER_POI
  * and a pointer argument and returns a boolean.
  */
 void purple_marshal_BOOLEAN__INT_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_POINTER__POINTER:
@@ -774,7 +767,7 @@ void purple_marshal_BOOLEAN__INT_POINTER
  * argument and returns a pointer.
  */
 void purple_marshal_POINTER__POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_POINTER__POINTER_INT:
@@ -787,7 +780,7 @@ void purple_marshal_POINTER__POINTER(
  * an integer argument and returns a pointer.
  */
 void purple_marshal_POINTER__POINTER_INT(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_POINTER__POINTER_INT64:
@@ -800,7 +793,7 @@ void purple_marshal_POINTER__POINTER_INT
  * a 64-bit integer argument and returns a pointer.
  */
 void purple_marshal_POINTER__POINTER_INT64(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_POINTER__POINTER_INT_BOOLEAN:
@@ -813,7 +806,7 @@ void purple_marshal_POINTER__POINTER_INT
  * integer, and boolean argument and returns a pointer.
  */
 void purple_marshal_POINTER__POINTER_INT_BOOLEAN(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_POINTER__POINTER_INT64_BOOLEAN:
@@ -826,7 +819,7 @@ void purple_marshal_POINTER__POINTER_INT
  * 64-bit integer, and boolean argument and returns a pointer.
  */
 void purple_marshal_POINTER__POINTER_INT64_BOOLEAN(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_POINTER__POINTER_POINTER_BOOLEAN:
@@ -839,7 +832,7 @@ void purple_marshal_POINTER__POINTER_INT
  * and one boolean arguments and returns a pointer.
  */
 void purple_marshal_POINTER__POINTER_POINTER_BOOLEAN(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 /**
  * purple_marshal_POINTER__POINTER_POINTER:
@@ -852,7 +845,7 @@ void purple_marshal_POINTER__POINTER_POI
  * arguments and returns a pointer.
  */
 void purple_marshal_POINTER__POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val);
+		GCallback cb, va_list args, void *data, void **return_val);
 
 G_END_DECLS
 
diff --git a/libpurple/signals.c b/libpurple/signals.c
--- a/libpurple/signals.c
+++ b/libpurple/signals.c
@@ -56,7 +56,7 @@ typedef struct
 typedef struct
 {
 	gulong id;
-	PurpleCallback cb;
+	GCallback cb;
 	void *handle;
 	void *data;
 	gboolean use_vargs;
@@ -222,7 +222,7 @@ static gint handler_priority(void * a, v
 
 static gulong
 signal_connect_common(void *instance, const char *signal, void *handle,
-					  PurpleCallback func, void *data, int priority, gboolean use_vargs)
+					  GCallback func, void *data, int priority, gboolean use_vargs)
 {
 	PurpleInstanceData *instance_data;
 	PurpleSignalData *signal_data;
@@ -272,35 +272,35 @@ signal_connect_common(void *instance, co
 
 gulong
 purple_signal_connect_priority(void *instance, const char *signal, void *handle,
-					PurpleCallback func, void *data, int priority)
+					GCallback func, void *data, int priority)
 {
 	return signal_connect_common(instance, signal, handle, func, data, priority, FALSE);
 }
 
 gulong
 purple_signal_connect(void *instance, const char *signal, void *handle,
-					PurpleCallback func, void *data)
+					GCallback func, void *data)
 {
 	return signal_connect_common(instance, signal, handle, func, data, PURPLE_SIGNAL_PRIORITY_DEFAULT, FALSE);
 }
 
 gulong
 purple_signal_connect_priority_vargs(void *instance, const char *signal, void *handle,
-						  PurpleCallback func, void *data, int priority)
+						  GCallback func, void *data, int priority)
 {
 	return signal_connect_common(instance, signal, handle, func, data, priority, TRUE);
 }
 
 gulong
 purple_signal_connect_vargs(void *instance, const char *signal, void *handle,
-						  PurpleCallback func, void *data)
+						  GCallback func, void *data)
 {
 	return signal_connect_common(instance, signal, handle, func, data, PURPLE_SIGNAL_PRIORITY_DEFAULT, TRUE);
 }
 
 void
 purple_signal_disconnect(void *instance, const char *signal,
-					   void *handle, PurpleCallback func)
+					   void *handle, GCallback func)
 {
 	PurpleInstanceData *instance_data;
 	PurpleSignalData *signal_data;
@@ -552,14 +552,14 @@ purple_signals_uninit()
  * Marshallers
  **************************************************************************/
 void
-purple_marshal_VOID(PurpleCallback cb, va_list args, void *data,
+purple_marshal_VOID(GCallback cb, va_list args, void *data,
 				  void **return_val)
 {
 	((void (*)(void *))cb)(data);
 }
 
 void
-purple_marshal_VOID__INT(PurpleCallback cb, va_list args, void *data,
+purple_marshal_VOID__INT(GCallback cb, va_list args, void *data,
 					   void **return_val)
 {
 	gint arg1 = va_arg(args, gint);
@@ -568,7 +568,7 @@ purple_marshal_VOID__INT(PurpleCallback 
 }
 
 void
-purple_marshal_VOID__INT_INT(PurpleCallback cb, va_list args, void *data,
+purple_marshal_VOID__INT_INT(GCallback cb, va_list args, void *data,
 						   void **return_val)
 {
 	gint arg1 = va_arg(args, gint);
@@ -578,7 +578,7 @@ purple_marshal_VOID__INT_INT(PurpleCallb
 }
 
 void
-purple_marshal_VOID__POINTER(PurpleCallback cb, va_list args, void *data,
+purple_marshal_VOID__POINTER(GCallback cb, va_list args, void *data,
 						   void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -587,7 +587,7 @@ purple_marshal_VOID__POINTER(PurpleCallb
 }
 
 void
-purple_marshal_VOID__POINTER_UINT(PurpleCallback cb, va_list args,
+purple_marshal_VOID__POINTER_UINT(GCallback cb, va_list args,
 										void *data, void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -596,7 +596,7 @@ purple_marshal_VOID__POINTER_UINT(Purple
 	((void (*)(void *, guint, void *))cb)(arg1, arg2, data);
 }
 
-void purple_marshal_VOID__POINTER_INT_INT(PurpleCallback cb, va_list args,
+void purple_marshal_VOID__POINTER_INT_INT(GCallback cb, va_list args,
                                         void *data, void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -606,7 +606,7 @@ void purple_marshal_VOID__POINTER_INT_IN
 	((void (*)(void *, gint, gint, void *))cb)(arg1, arg2, arg3, data);
 }
 
-void purple_marshal_VOID__POINTER_INT_POINTER(PurpleCallback cb, va_list args,
+void purple_marshal_VOID__POINTER_INT_POINTER(GCallback cb, va_list args,
                                               void *data, void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -617,7 +617,7 @@ void purple_marshal_VOID__POINTER_INT_PO
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER(PurpleCallback cb, va_list args,
+purple_marshal_VOID__POINTER_POINTER(GCallback cb, va_list args,
 								   void *data, void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -627,7 +627,7 @@ purple_marshal_VOID__POINTER_POINTER(Pur
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER_UINT(PurpleCallback cb, va_list args,
+purple_marshal_VOID__POINTER_POINTER_UINT(GCallback cb, va_list args,
 										void *data, void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -638,7 +638,7 @@ purple_marshal_VOID__POINTER_POINTER_UIN
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER_UINT_UINT(PurpleCallback cb, va_list args,
+purple_marshal_VOID__POINTER_POINTER_UINT_UINT(GCallback cb, va_list args,
 										     void *data, void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -650,7 +650,7 @@ purple_marshal_VOID__POINTER_POINTER_UIN
 }
 
 void
-purple_marshal_VOID__POINTER_UINT_UINT(PurpleCallback cb, va_list args,
+purple_marshal_VOID__POINTER_UINT_UINT(GCallback cb, va_list args,
 										     void *data, void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -661,7 +661,7 @@ purple_marshal_VOID__POINTER_UINT_UINT(P
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER_POINTER(PurpleCallback cb, va_list args,
+purple_marshal_VOID__POINTER_POINTER_POINTER(GCallback cb, va_list args,
 										   void *data, void **return_val)
 {
 	void *arg1 = va_arg(args, void *);
@@ -672,7 +672,7 @@ purple_marshal_VOID__POINTER_POINTER_POI
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER(PurpleCallback cb,
+purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER(GCallback cb,
 												   va_list args,
 												   void *data,
 												   void **return_val)
@@ -686,7 +686,7 @@ purple_marshal_VOID__POINTER_POINTER_POI
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER(PurpleCallback cb,
+purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER(GCallback cb,
 														   va_list args,
 														   void *data,
 														   void **return_val)
@@ -701,7 +701,7 @@ purple_marshal_VOID__POINTER_POINTER_POI
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER_POINTER_UINT(PurpleCallback cb,
+purple_marshal_VOID__POINTER_POINTER_POINTER_UINT(GCallback cb,
 												   va_list args,
 												   void *data,
 												   void **return_val)
@@ -715,7 +715,7 @@ purple_marshal_VOID__POINTER_POINTER_POI
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT(PurpleCallback cb,
+purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT(GCallback cb,
 													    va_list args,
 													    void *data,
 													    void **return_val)
@@ -730,7 +730,7 @@ purple_marshal_VOID__POINTER_POINTER_POI
 }
 
 void
-purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT(PurpleCallback cb,
+purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT(GCallback cb,
 													 va_list args,
 													 void *data,
 													 void **return_val)
@@ -746,7 +746,7 @@ purple_marshal_VOID__POINTER_POINTER_POI
 }
 
 void
-purple_marshal_INT__INT(PurpleCallback cb, va_list args, void *data,
+purple_marshal_INT__INT(GCallback cb, va_list args, void *data,
 					  void **return_val)
 {
 	gint ret_val;
@@ -759,7 +759,7 @@ purple_marshal_INT__INT(PurpleCallback c
 }
 
 void
-purple_marshal_INT__INT_INT(PurpleCallback cb, va_list args, void *data,
+purple_marshal_INT__INT_INT(GCallback cb, va_list args, void *data,
 						  void **return_val)
 {
 	gint ret_val;
@@ -773,7 +773,7 @@ purple_marshal_INT__INT_INT(PurpleCallba
 }
 
 void
-purple_marshal_INT__POINTER_POINTER(PurpleCallback cb, va_list args, void *data,
+purple_marshal_INT__POINTER_POINTER(GCallback cb, va_list args, void *data,
                                       void **return_val)
 {
 	gint ret_val;
@@ -788,7 +788,7 @@ purple_marshal_INT__POINTER_POINTER(Purp
 
 	void
 purple_marshal_INT__POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val)
+		GCallback cb, va_list args, void *data, void **return_val)
 {
 	gint ret_val;
 	void *arg1 = va_arg(args, void *);
@@ -803,7 +803,7 @@ purple_marshal_INT__POINTER_POINTER_POIN
 
 void
 purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val)
+		GCallback cb, va_list args, void *data, void **return_val)
 {
 	gint ret_val;
 	void *arg1 = va_arg(args, void *);
@@ -821,7 +821,7 @@ purple_marshal_INT__POINTER_POINTER_POIN
 }
 
 void
-purple_marshal_BOOLEAN__POINTER(PurpleCallback cb, va_list args, void *data,
+purple_marshal_BOOLEAN__POINTER(GCallback cb, va_list args, void *data,
 							  void **return_val)
 {
 	gboolean ret_val;
@@ -834,7 +834,7 @@ purple_marshal_BOOLEAN__POINTER(PurpleCa
 }
 
 void
-purple_marshal_BOOLEAN__POINTER_POINTER(PurpleCallback cb, va_list args,
+purple_marshal_BOOLEAN__POINTER_POINTER(GCallback cb, va_list args,
 									  void *data, void **return_val)
 {
 	gboolean ret_val;
@@ -848,7 +848,7 @@ purple_marshal_BOOLEAN__POINTER_POINTER(
 }
 
 void
-purple_marshal_BOOLEAN__POINTER_BOOLEAN(PurpleCallback cb, va_list args,
+purple_marshal_BOOLEAN__POINTER_BOOLEAN(GCallback cb, va_list args,
 									  void *data, void **return_val)
 {
 	gboolean ret_val;
@@ -862,7 +862,7 @@ purple_marshal_BOOLEAN__POINTER_BOOLEAN(
 }
 
 void
-purple_marshal_BOOLEAN__POINTER_POINTER_POINTER(PurpleCallback cb, va_list args,
+purple_marshal_BOOLEAN__POINTER_POINTER_POINTER(GCallback cb, va_list args,
 											  void *data, void **return_val)
 {
 	gboolean ret_val;
@@ -878,7 +878,7 @@ purple_marshal_BOOLEAN__POINTER_POINTER_
 }
 
 void
-purple_marshal_BOOLEAN__POINTER_POINTER_UINT(PurpleCallback cb,
+purple_marshal_BOOLEAN__POINTER_POINTER_UINT(GCallback cb,
 												   va_list args,
 												   void *data,
 												   void **return_val)
@@ -896,7 +896,7 @@ purple_marshal_BOOLEAN__POINTER_POINTER_
 }
 
 void
-purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT(PurpleCallback cb,
+purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT(GCallback cb,
 												   va_list args,
 												   void *data,
 												   void **return_val)
@@ -915,7 +915,7 @@ purple_marshal_BOOLEAN__POINTER_POINTER_
 }
 
 void
-purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER(PurpleCallback cb,
+purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER(GCallback cb,
 													  va_list args,
 													  void *data,
 													  void **return_val)
@@ -935,7 +935,7 @@ purple_marshal_BOOLEAN__POINTER_POINTER_
 
 void
 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val)
+		GCallback cb, va_list args, void *data, void **return_val)
 {
 	gboolean ret_val;
 	void *arg1 = va_arg(args, void *);
@@ -954,7 +954,7 @@ purple_marshal_BOOLEAN__POINTER_POINTER_
 
 void
 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT(
-		PurpleCallback cb, va_list args, void *data, void **return_val)
+		GCallback cb, va_list args, void *data, void **return_val)
 {
 	gboolean ret_val;
 	void *arg1 = va_arg(args, void *);
@@ -973,7 +973,7 @@ purple_marshal_BOOLEAN__POINTER_POINTER_
 
 void
 purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER(
-		PurpleCallback cb, va_list args, void *data, void **return_val)
+		GCallback cb, va_list args, void *data, void **return_val)
 {
 	gboolean ret_val;
 	void *arg1 = va_arg(args, void *);
@@ -992,7 +992,7 @@ purple_marshal_BOOLEAN__POINTER_POINTER_
 }
 
 void
-purple_marshal_BOOLEAN__INT_POINTER(PurpleCallback cb, va_list args, void *data,
+purple_marshal_BOOLEAN__INT_POINTER(GCallback cb, va_list args, void *data,
                                   void **return_val)
 {
 	gboolean ret_val;
@@ -1007,7 +1007,7 @@ purple_marshal_BOOLEAN__INT_POINTER(Purp
 
 void
 purple_marshal_POINTER__POINTER(
-                                    PurpleCallback cb, va_list args, void *data,
+                                    GCallback cb, va_list args, void *data,
                                     void **return_val)
 {
 	gpointer ret_val;
@@ -1022,7 +1022,7 @@ purple_marshal_POINTER__POINTER(
 
 void
 purple_marshal_POINTER__POINTER_INT(
-                                    PurpleCallback cb, va_list args, void *data,
+                                    GCallback cb, va_list args, void *data,
                                     void **return_val)
 {
 	gpointer ret_val;
@@ -1037,7 +1037,7 @@ purple_marshal_POINTER__POINTER_INT(
 
 void
 purple_marshal_POINTER__POINTER_INT64(
-                                    PurpleCallback cb, va_list args, void *data,
+                                    GCallback cb, va_list args, void *data,
                                     void **return_val)
 {
 	gpointer ret_val;
@@ -1052,7 +1052,7 @@ purple_marshal_POINTER__POINTER_INT64(
 
 void
 purple_marshal_POINTER__POINTER_INT_BOOLEAN(
-                                    PurpleCallback cb, va_list args, void *data,
+                                    GCallback cb, va_list args, void *data,
                                     void **return_val)
 {
 	gpointer ret_val;
@@ -1068,7 +1068,7 @@ purple_marshal_POINTER__POINTER_INT_BOOL
 
 void
 purple_marshal_POINTER__POINTER_INT64_BOOLEAN(
-                                    PurpleCallback cb, va_list args, void *data,
+                                    GCallback cb, va_list args, void *data,
                                     void **return_val)
 {
 	gpointer ret_val;
@@ -1084,7 +1084,7 @@ purple_marshal_POINTER__POINTER_INT64_BO
 
 void
 purple_marshal_POINTER__POINTER_POINTER_BOOLEAN(
-                                    PurpleCallback cb, va_list args, void *data,
+                                    GCallback cb, va_list args, void *data,
                                     void **return_val)
 {
 	gpointer ret_val;
@@ -1099,7 +1099,7 @@ purple_marshal_POINTER__POINTER_POINTER_
 }
 
 void
-purple_marshal_POINTER__POINTER_POINTER(PurpleCallback cb, va_list args, void *data,
+purple_marshal_POINTER__POINTER_POINTER(GCallback cb, va_list args, void *data,
                                       void **return_val)
 {
 	gpointer ret_val;
diff --git a/pidgin/gtkutils.c b/pidgin/gtkutils.c
--- a/pidgin/gtkutils.c
+++ b/pidgin/gtkutils.c
@@ -580,7 +580,7 @@ do_pidgin_append_menu_action(GtkWidget *
 	list = purple_action_menu_get_children(act);
 
 	if (list == NULL) {
-		PurpleCallback callback;
+		GCallback callback;
 
 		callback = purple_action_menu_get_callback(act);
 
