changeset 15004:5e07a6f8eb33

[gaim-migrate @ 17784] SF Patch #1571670 from zdeqb "Perl bindings for the functions in core.h and some bindings for the functions in privacy.h." I made the following changes: 1. I chose to export gaim_get_core() as Gaim::get_core instead of Gaim::Core::get_core. 2. I don't see any reason to require Perl code to pass bogus values just because C requires them. So, I changed Gaim::Core::quit_cb to NOT take an argument, and to pass NULL to gaim_core_quit_cb(). 3. I fixed a typo. 4. I cleaned up some spacing issues. I noticed that Core.c didn't get created from Core.xs until I re-ran configure. Maybe there's no way to avoid this? committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sun, 19 Nov 2006 19:58:45 +0000
parents 60bba83d5c2d
children 56a12557520e
files libgaim/plugins/perl/Makefile.am libgaim/plugins/perl/common/Core.xs libgaim/plugins/perl/common/Gaim.xs libgaim/plugins/perl/common/Privacy.xs libgaim/plugins/perl/common/module.h libgaim/plugins/perl/common/typemap
diffstat 6 files changed, 75 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libgaim/plugins/perl/Makefile.am	Sun Nov 19 19:14:48 2006 +0000
+++ b/libgaim/plugins/perl/Makefile.am	Sun Nov 19 19:58:45 2006 +0000
@@ -50,6 +50,7 @@
         common/BuddyList.xs \
         common/Cipher.xs \
         common/Cmds.xs \
+        common/Core.xs \
         common/Connection.xs \
         common/Conversation.xs \
         common/Debug.xs \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgaim/plugins/perl/common/Core.xs	Sun Nov 19 19:58:45 2006 +0000
@@ -0,0 +1,28 @@
+#include "module.h"
+
+MODULE = Gaim::Core  PACKAGE = Gaim::Core  PREFIX = gaim_core_
+PROTOTYPES: ENABLE
+
+gboolean 
+gaim_core_quit_cb()
+PPCODE:
+	/* The argument to gaim_core_quit_cb is not used,
+	 * so there's little point in requiring it on the
+	 * Perl side. */
+	RETVAL = gaim_core_quit_cb(NULL);
+	ST(0) = boolSV(RETVAL);
+	sv_2mortal(ST(0));
+
+const char *
+gaim_core_get_version()
+
+const char *
+gaim_core_get_ui()
+
+void
+gaim_core_set_ui_ops(ops)
+    Gaim::Core::UiOps ops
+
+Gaim::Core::UiOps
+gaim_core_get_ui_ops()
+
--- a/libgaim/plugins/perl/common/Gaim.xs	Sun Nov 19 19:14:48 2006 +0000
+++ b/libgaim/plugins/perl/common/Gaim.xs	Sun Nov 19 19:58:45 2006 +0000
@@ -11,6 +11,7 @@
 GAIM_PERL_BOOT_PROTO(Cmd);
 GAIM_PERL_BOOT_PROTO(Connection);
 GAIM_PERL_BOOT_PROTO(Conversation);
+GAIM_PERL_BOOT_PROTO(Core);
 GAIM_PERL_BOOT_PROTO(Debug);
 GAIM_PERL_BOOT_PROTO(Xfer);
 GAIM_PERL_BOOT_PROTO(ImgStore);
@@ -50,6 +51,7 @@
 	GAIM_PERL_BOOT(Cmd);
 	GAIM_PERL_BOOT(Connection);
 	GAIM_PERL_BOOT(Conversation);
+	GAIM_PERL_BOOT(Core);
 	GAIM_PERL_BOOT(Debug);
 	GAIM_PERL_BOOT(Xfer);
 	GAIM_PERL_BOOT(ImgStore);
@@ -88,3 +90,10 @@
 deinit()
 CODE:
 	gaim_perl_timeout_clear();
+
+
+MODULE = Gaim  PACKAGE = Gaim  PREFIX = gaim_
+PROTOTYPES: ENABLE
+
+Gaim::Core
+gaim_get_core()
--- a/libgaim/plugins/perl/common/Privacy.xs	Sun Nov 19 19:14:48 2006 +0000
+++ b/libgaim/plugins/perl/common/Privacy.xs	Sun Nov 19 19:58:45 2006 +0000
@@ -12,3 +12,32 @@
 void
 gaim_privacy_set_ui_ops(ops)
 	Gaim::Privacy::UiOps ops
+
+gboolean
+gaim_privacy_permit_add(account, name, local_only)
+	Gaim::Account account
+	const char * name
+	gboolean local_only
+
+gboolean
+gaim_privacy_permit_remove(account, name, local_only)
+	Gaim::Account account
+	const char * name
+	gboolean local_only
+
+gboolean
+gaim_privacy_deny_add(account, name, local_only)
+	Gaim::Account account
+	const char * name
+	gboolean local_only
+
+gboolean
+gaim_privacy_deny_remove(account, name, local_only)
+	Gaim::Account account
+	const char * name
+	gboolean local_only
+
+gboolean
+gaim_privacy_check(account, who)
+	Gaim::Account account
+	const char * who
--- a/libgaim/plugins/perl/common/module.h	Sun Nov 19 19:14:48 2006 +0000
+++ b/libgaim/plugins/perl/common/module.h	Sun Nov 19 19:58:45 2006 +0000
@@ -24,6 +24,7 @@
 #include "cmds.h"
 #include "connection.h"
 #include "conversation.h"
+#include "core.h"
 #include "debug.h"
 #include "desktopitem.h"
 #include "eventloop.h"
@@ -108,6 +109,11 @@
 typedef GaimConvChat *			Gaim__Conversation__Chat;
 typedef GaimConvChatBuddy *		Gaim__Conversation__ChatBuddy;
 
+/* core.h */
+
+typedef GaimCore *			Gaim__Core;
+typedef GaimCoreUiOps *		Gaim__Core__UiOps;
+
 /* debug.h */
 typedef GaimDebugLevel			Gaim__DebugLevel;
 
--- a/libgaim/plugins/perl/common/typemap	Sun Nov 19 19:14:48 2006 +0000
+++ b/libgaim/plugins/perl/common/typemap	Sun Nov 19 19:58:45 2006 +0000
@@ -68,6 +68,8 @@
 Gaim::Conversation::ChatBuddy		T_GaimObj
 Gaim::Conversation::IM			T_GaimObj
 Gaim::Conversation::UiOps		T_GaimObj
+Gaim::Core				T_GaimObj
+Gaim::Core::UiOps			T_GaimObj
 
 Gaim::Desktop::Item			T_GaimObj
 Gaim::DesktopItemType			T_IV