# HG changeset patch # User Richard Laager # Date 1163966325 0 # Node ID 5e07a6f8eb33f4dd0ee29b2ef799fd4e21d84e08 # Parent 60bba83d5c2dac33a7a8411e47879a7ee8586e43 [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 diff -r 60bba83d5c2d -r 5e07a6f8eb33 libgaim/plugins/perl/Makefile.am --- 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 \ diff -r 60bba83d5c2d -r 5e07a6f8eb33 libgaim/plugins/perl/common/Core.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() + diff -r 60bba83d5c2d -r 5e07a6f8eb33 libgaim/plugins/perl/common/Gaim.xs --- 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() diff -r 60bba83d5c2d -r 5e07a6f8eb33 libgaim/plugins/perl/common/Privacy.xs --- 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 diff -r 60bba83d5c2d -r 5e07a6f8eb33 libgaim/plugins/perl/common/module.h --- 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; diff -r 60bba83d5c2d -r 5e07a6f8eb33 libgaim/plugins/perl/common/typemap --- 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