Mercurial > pidgin
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