… | |
… | |
36 | |
36 | |
37 | #include <EXTERN.h> |
37 | #include <EXTERN.h> |
38 | #include <perl.h> |
38 | #include <perl.h> |
39 | #include <XSUB.h> |
39 | #include <XSUB.h> |
40 | |
40 | |
|
|
41 | #include "CoroAPI.h" |
41 | #include "perlxsi.c" |
42 | #include "perlxsi.c" |
42 | |
43 | |
43 | extern sint64 *levels; // the experience table |
44 | extern sint64 *levels; // the experience table |
44 | |
45 | |
45 | typedef object object_ornull; |
46 | typedef object object_ornull; |
… | |
… | |
843 | PL_exit_flags |= PERL_EXIT_DESTRUCT_END; |
844 | PL_exit_flags |= PERL_EXIT_DESTRUCT_END; |
844 | |
845 | |
845 | char *argv[] = { |
846 | char *argv[] = { |
846 | "", |
847 | "", |
847 | "-e" |
848 | "-e" |
848 | "use Event;" // required for bootstrap |
849 | "use Event; use Coro;" // required for bootstrap |
849 | "cf->bootstrap;" // required for datadir :*> |
850 | "cf->bootstrap;" // required for datadir :*> |
850 | "unshift @INC, cf::datadir ();" |
851 | "unshift @INC, cf::datadir ();" |
851 | "require cf;" |
852 | "require cf;" |
852 | }; |
853 | }; |
853 | |
854 | |
854 | if (perl_parse (perl, xs_init, 2, argv, (char **)NULL) || perl_run (perl)) |
855 | if (perl_parse (perl, xs_init, 2, argv, (char **)NULL) || perl_run (perl)) |
… | |
… | |
1146 | { |
1147 | { |
1147 | HV *stash = gv_stashpv ("cf", 1); |
1148 | HV *stash = gv_stashpv ("cf", 1); |
1148 | |
1149 | |
1149 | I_EVENT_API (PACKAGE); |
1150 | I_EVENT_API (PACKAGE); |
1150 | watcher_base::GEventAPI = GEventAPI; |
1151 | watcher_base::GEventAPI = GEventAPI; |
|
|
1152 | I_CORO_API (PACKAGE); |
1151 | |
1153 | |
1152 | newCONSTSUB (stash, "VERSION", newSVpv (VERSION, sizeof (VERSION) - 1)); |
1154 | newCONSTSUB (stash, "VERSION", newSVpv (VERSION, sizeof (VERSION) - 1)); |
1153 | |
1155 | |
1154 | static const struct { |
1156 | static const struct { |
1155 | const char *name; |
1157 | const char *name; |