libpurple/plugins/perl/perl-common.h

Thu, 13 Nov 2014 01:06:59 -0500

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Thu, 13 Nov 2014 01:06:59 -0500
changeset 36257
c5445f25f90f
parent 35989
2b5a26ddbb69
child 36308
4432aff3b90d
child 37144
8b63b9948107
permissions
-rw-r--r--

Merge with release-2.x.y

15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1 #ifndef _PURPLE_PERL_COMMON_H_
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2 #define _PURPLE_PERL_COMMON_H_
6508
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3
6816
b14a3043ed09 [gaim-migrate @ 7356]
Herman Bloggs <herman@bluedigits.com>
parents: 6566
diff changeset
4 #include <glib.h>
b14a3043ed09 [gaim-migrate @ 7356]
Herman Bloggs <herman@bluedigits.com>
parents: 6566
diff changeset
5 #ifdef _WIN32
29792
ad7890a74433 Some undefs to make building with mingw-64 more pleasant
Daniel Atallah <datallah@pidgin.im>
parents: 29340
diff changeset
6 #undef STRINGIFY
6816
b14a3043ed09 [gaim-migrate @ 7356]
Herman Bloggs <herman@bluedigits.com>
parents: 6566
diff changeset
7 #undef pipe
b14a3043ed09 [gaim-migrate @ 7356]
Herman Bloggs <herman@bluedigits.com>
parents: 6566
diff changeset
8 #endif
35981
e8c02ea0800b Backport warning fixes for perl from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 29809
diff changeset
9
e8c02ea0800b Backport warning fixes for perl from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 29809
diff changeset
10 #define SILENT_NO_TAINT_SUPPORT 0
e8c02ea0800b Backport warning fixes for perl from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 29809
diff changeset
11 #define NO_TAINT_SUPPORT 0
e8c02ea0800b Backport warning fixes for perl from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 29809
diff changeset
12
23916
76b2c63d074c EXTERN.h should be included before perl.h
Daniel Atallah <datallah@pidgin.im>
parents: 23915
diff changeset
13 #include <EXTERN.h>
23915
b62601fd6e7d Update the Perl plugin loader to work with Perl 5.10.
Daniel Atallah <datallah@pidgin.im>
parents: 22839
diff changeset
14 #include <perl.h>
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
15 #include <XSUB.h>
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
16
18273
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
17 /* XXX: perl defines it's own _ but I think it's safe to undef it */
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
18 #undef _
18633
34ba43198355 Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <datallah@pidgin.im>
parents: 18273
diff changeset
19 /* Dirty hack to prevent the win32 libc compat stuff from interfering with the Perl internal stuff */
34ba43198355 Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <datallah@pidgin.im>
parents: 18273
diff changeset
20 #ifdef _WIN32
34ba43198355 Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <datallah@pidgin.im>
parents: 18273
diff changeset
21 #define _WIN32DEP_H_
34ba43198355 Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <datallah@pidgin.im>
parents: 18273
diff changeset
22 #endif
18273
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
23 #include "internal.h"
18633
34ba43198355 Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <datallah@pidgin.im>
parents: 18273
diff changeset
24 #ifdef _WIN32
34ba43198355 Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <datallah@pidgin.im>
parents: 18273
diff changeset
25 #undef _WIN32DEP_H_
34ba43198355 Fix the win32 build. Thanks to Etan and Lee Roach. Fixes #1929.
Daniel Atallah <datallah@pidgin.im>
parents: 18273
diff changeset
26 #endif
12872
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
27 #include "plugin.h"
6566
61eb35202526 [gaim-migrate @ 7088]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
28
6508
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 #define is_hvref(o) \
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 ((o) && SvROK(o) && SvRV(o) && (SvTYPE(SvRV(o)) == SVt_PVHV))
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 #define hvref(o) \
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 (is_hvref(o) ? (HV *)SvRV(o) : NULL);
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
35 #define PURPLE_PERL_BOOT_PROTO(x) \
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
36 void boot_Purple__##x(pTHX_ CV *cv);
12419
745d9e5460ea [gaim-migrate @ 14726]
Richard Laager <rlaager@pidgin.im>
parents: 11170
diff changeset
37
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
38 #define PURPLE_PERL_BOOT(x) \
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
39 purple_perl_callXS(boot_Purple__##x, cv, mark)
6508
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40
34455
cdc53b913dd4 Clang warnings: gg prpl and perl's SvUPGRADE
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33906
diff changeset
41 #ifdef HAVE_NEW_SVUPGRADE
cdc53b913dd4 Clang warnings: gg prpl and perl's SvUPGRADE
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33906
diff changeset
42 # define SvUPGRADE_common(a, b) SvUPGRADE(a, b)
cdc53b913dd4 Clang warnings: gg prpl and perl's SvUPGRADE
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33906
diff changeset
43 #else
cdc53b913dd4 Clang warnings: gg prpl and perl's SvUPGRADE
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33906
diff changeset
44 # define SvUPGRADE_common(a, b) if (!SvUPGRADE(a, b)) { croak("Cannot upgrade variable"); }
cdc53b913dd4 Clang warnings: gg prpl and perl's SvUPGRADE
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33906
diff changeset
45 #endif
cdc53b913dd4 Clang warnings: gg prpl and perl's SvUPGRADE
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 33906
diff changeset
46
33906
dc870eacc2d0 Change char* to const char* in PurplePluginInfo
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 29809
diff changeset
47 typedef struct _PurplePerlInfoStrings PurplePerlInfoStrings;
dc870eacc2d0 Change char* to const char* in PurplePluginInfo
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 29809
diff changeset
48
12872
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
49 typedef struct
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
50 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
51 PurplePlugin *plugin;
33906
dc870eacc2d0 Change char* to const char* in PurplePluginInfo
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 29809
diff changeset
52 PurplePerlInfoStrings *info_strings;
12872
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
53 char *package;
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
54 char *load_sub;
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
55 char *unload_sub;
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
56 char *prefs_sub;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
57 #ifdef PURPLE_GTKPERL
12872
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
58 char *gtk_prefs_sub;
14426
8d4f164c4979 [gaim-migrate @ 17070]
Daniel Atallah <datallah@pidgin.im>
parents: 14254
diff changeset
59 #endif
12988
2a53945982f5 [gaim-migrate @ 15341]
Etan Reisner <deryni@pidgin.im>
parents: 12872
diff changeset
60 char *plugin_action_sub;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
61 } PurplePerlScript;
12872
b3d38f1b9bd7 [gaim-migrate @ 15224]
Etan Reisner <deryni@pidgin.im>
parents: 12871
diff changeset
62
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
63 void purple_perl_normalize_script_name(char *name);
11170
d8941580d87f [gaim-migrate @ 13271]
John H. Kelm <johnkelm@gmail.com>
parents: 6921
diff changeset
64
6566
61eb35202526 [gaim-migrate @ 7088]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
65 SV *newSVGChar(const char *str);
61eb35202526 [gaim-migrate @ 7088]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
66
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
67 void purple_perl_callXS(void (*subaddr)(pTHX_ CV *cv), CV *cv, SV **mark);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
68 void purple_perl_bless_plain(const char *stash, void *object);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
69 SV *purple_perl_bless_object(void *object, const char *stash);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
70 gboolean purple_perl_is_ref_object(SV *o);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
71 void *purple_perl_ref_object(SV *o);
6508
57d1df1ca3a0 [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72
6520
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
73 int execute_perl(const char *function, int argc, char **args);
5386692555c9 [gaim-migrate @ 7037]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
74
6566
61eb35202526 [gaim-migrate @ 7088]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
75 #if 0
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
76 gboolean purple_perl_value_from_sv(PurpleValue *value, SV *sv);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
77 SV *purple_perl_sv_from_value(const PurpleValue *value);
6566
61eb35202526 [gaim-migrate @ 7088]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
78 #endif
61eb35202526 [gaim-migrate @ 7088]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
79
34802
4ea5cddeefc4 Refactored perl-common to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents: 34799
diff changeset
80 void *purple_perl_data_from_sv(GType type, SV *sv);
4ea5cddeefc4 Refactored perl-common to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents: 34799
diff changeset
81 SV *purple_perl_sv_from_vargs(GType type, va_list *args, void ***copy_arg);
22839
3ee4247ebbbd Use the same fix for Purple::Util::fetch_url (from 4b6378d5e) for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18633
diff changeset
82 SV *purple_perl_sv_from_fun(PurplePlugin *plugin, SV *callback);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
83 #endif /* _PURPLE_PERL_COMMON_H_ */

mercurial