summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-05-11 14:37:43 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-05-11 14:37:43 +0000
commit3f086d419c50f751f60698f576f79c071b44b977 (patch)
treef5c5b5faf45ae7c93df6433c862844b4b75fb2d3 /win32
parent8d48951454f4bbf2357221fa1f5327ad0adb8f2f (diff)
parent52853b95ebed443e023862f2a1db2614404699e5 (diff)
downloadperl-3f086d419c50f751f60698f576f79c071b44b977.tar.gz
Integrate with Sarathy.
p4raw-id: //depot/cfgperl@6105
Diffstat (limited to 'win32')
-rw-r--r--win32/win32.c42
1 files changed, 25 insertions, 17 deletions
diff --git a/win32/win32.c b/win32/win32.c
index 008d7e0d94..c589ff5e88 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -3968,18 +3968,6 @@ Perl_init_os_extras(void)
char *file = __FILE__;
dXSUB_SYS;
- w32_perlshell_tokens = Nullch;
- w32_perlshell_items = -1;
- w32_fdpid = newAV(); /* XXX needs to be in Perl_win32_init()? */
- New(1313, w32_children, 1, child_tab);
- w32_num_children = 0;
- w32_init_socktype = 0;
-#ifdef USE_ITHREADS
- w32_pseudo_id = 0;
- New(1313, w32_pseudo_children, 1, child_tab);
- w32_num_pseudo_children = 0;
-#endif
-
/* these names are Activeware compatible */
newXS("Win32::GetCwd", w32_GetCwd, file);
newXS("Win32::SetCwd", w32_SetCwd, file);
@@ -4037,16 +4025,36 @@ win32_get_child_IO(child_IO_table* ptbl)
ptbl->childStdErr = GetStdHandle(STD_ERROR_HANDLE);
}
-
-#ifdef USE_ITHREADS
+#ifdef HAVE_INTERP_INTERN
# ifdef PERL_OBJECT
+# undef Perl_sys_intern_init
+# define Perl_sys_intern_init CPerlObj::Perl_sys_intern_init
# undef Perl_sys_intern_dup
# define Perl_sys_intern_dup CPerlObj::Perl_sys_intern_dup
# define pPerl this
# endif
void
+Perl_sys_intern_init(pTHX)
+{
+ w32_perlshell_tokens = Nullch;
+ w32_perlshell_vec = (char**)NULL;
+ w32_perlshell_items = 0;
+ w32_fdpid = newAV();
+ New(1313, w32_children, 1, child_tab);
+ w32_num_children = 0;
+# ifdef USE_ITHREADS
+ w32_pseudo_id = 0;
+ New(1313, w32_pseudo_children, 1, child_tab);
+ w32_num_pseudo_children = 0;
+# endif
+ w32_init_socktype = 0;
+}
+
+# ifdef USE_ITHREADS
+
+void
Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst)
{
dst->perlshell_tokens = Nullch;
@@ -4054,12 +4062,12 @@ Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst)
dst->perlshell_items = 0;
dst->fdpid = newAV();
Newz(1313, dst->children, 1, child_tab);
- Newz(1313, dst->pseudo_children, 1, child_tab);
dst->pseudo_id = 0;
- dst->children->num = 0;
+ Newz(1313, dst->pseudo_children, 1, child_tab);
dst->thr_intern.Winit_socktype = src->thr_intern.Winit_socktype;
}
-#endif
+# endif /* USE_ITHREADS */
+#endif /* HAVE_INTERP_INTERN */
#ifdef PERL_OBJECT
# undef this