dougm 01/10/08 17:13:00
Modified: src/modules/perl mod_perl.c modperl_perl.c modperl_perl.h
Log:
*CORE::GLOBAL::exit = \&ModPerl::Util::exit
Revision Changes Path
1.88 +2 -0 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -r1.87 -r1.88
--- mod_perl.c 2001/10/07 19:04:20 1.87
+++ mod_perl.c 2001/10/09 00:13:00 1.88
@@ -39,6 +39,8 @@
modperl_env_default_populate(aTHX);
+ modperl_perl_core_global_init(aTHX);
+
for (i=0; MP_xs_loaders[i]; i++) {
char *name = Perl_form(aTHX_ MP_xs_loader_name, MP_xs_loaders[i]);
newCONSTSUB(PL_defstash, name, newSViv(1));
1.5 +26 -0 modperl-2.0/src/modules/perl/modperl_perl.c
Index: modperl_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- modperl_perl.c 2001/09/16 17:28:43 1.4
+++ modperl_perl.c 2001/10/09 00:13:00 1.5
@@ -4,6 +4,32 @@
* others (larger tweaks) are in their own modules, e.g. modperl_env.c
*/
+typedef struct {
+ const char *name;
+ const char *sub_name;
+ const char *core_name;
+} modperl_perl_core_global_t;
+
+#define MP_PERL_CORE_GLOBAL_ENT(name) \
+{ name, "ModPerl::Util::" name, "CORE::GLOBAL::" name }
+
+static modperl_perl_core_global_t MP_perl_core_global_entries[] = {
+ MP_PERL_CORE_GLOBAL_ENT("exit"),
+ { NULL },
+};
+
+void modperl_perl_core_global_init(pTHX)
+{
+ modperl_perl_core_global_t *cglobals = MP_perl_core_global_entries;
+
+ while (cglobals->name) {
+ GV *gv = gv_fetchpv(cglobals->core_name, TRUE, SVt_PVCV);
+ GvCV(gv) = get_cv(cglobals->sub_name, TRUE);
+ GvIMPORTED_CV_on(gv);
+ cglobals++;
+ }
+}
+
void modperl_perl_ids_get(modperl_perl_ids_t *ids)
{
ids->pid = (I32)getpid();
1.5 +2 -0 modperl-2.0/src/modules/perl/modperl_perl.h
Index: modperl_perl.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- modperl_perl.h 2001/09/16 17:28:43 1.4
+++ modperl_perl.h 2001/10/09 00:13:00 1.5
@@ -7,6 +7,8 @@
Gid_t gid, egid;
} modperl_perl_ids_t;
+void modperl_perl_core_global_init(pTHX);
+
void modperl_perl_ids_get(modperl_perl_ids_t *ids);
void modperl_perl_init_ids(pTHX_ modperl_perl_ids_t *ids);