Enable disabling scripts installation by Configure -Uinstallscripts,
[p5sagit/p5-mst-13.2.git] / win32 / win32.c
index 5af22ff..67e8952 100644 (file)
@@ -1036,10 +1036,11 @@ win32_kill(int pid, int sig)
 {
     dTHXo;
     HANDLE hProcess;
+    long child;
 #ifdef USE_ITHREADS
     if (pid < 0) {
        /* it is a pseudo-forked child */
-       long child = find_pseudo_pid(-pid);
+       child = find_pseudo_pid(-pid);
        if (child >= 0) {
            if (!sig)
                return 0;
@@ -1057,7 +1058,7 @@ win32_kill(int pid, int sig)
     else
 #endif
     {
-       long child = find_pid(pid);
+       child = find_pid(pid);
        if (child >= 0) {
            if (!sig)
                return 0;
@@ -1632,7 +1633,7 @@ win32_uname(struct utsname *name)
        char *arch;
        GetSystemInfo(&info);
 
-#if defined(__BORLANDC__) || defined(__MINGW32__)
+#if (defined(__BORLANDC__)&&(__BORLANDC__<=0x520)) || defined(__MINGW32__)
        switch (info.u.s.wProcessorArchitecture) {
 #else
        switch (info.wProcessorArchitecture) {
@@ -1659,11 +1660,12 @@ win32_waitpid(int pid, int *status, int flags)
     dTHXo;
     DWORD timeout = (flags & WNOHANG) ? 0 : INFINITE;
     int retval = -1;
+    long child;
     if (pid == -1)                             /* XXX threadid == 1 ? */
        return win32_wait(status);
 #ifdef USE_ITHREADS
     else if (pid < 0) {
-       long child = find_pseudo_pid(-pid);
+       child = find_pseudo_pid(-pid);
        if (child >= 0) {
            HANDLE hThread = w32_pseudo_child_handles[child];
            DWORD waitcode = WaitForSingleObject(hThread, timeout);
@@ -1690,7 +1692,7 @@ win32_waitpid(int pid, int *status, int flags)
     else {
        HANDLE hProcess;
        DWORD waitcode;
-       long child = find_pid(pid);
+       child = find_pid(pid);
        if (child >= 0) {
            hProcess = w32_child_handles[child];
            waitcode = WaitForSingleObject(hProcess, timeout);
@@ -3910,6 +3912,9 @@ XS(w32_GetShortPathName)
 
     shortpath = sv_mortalcopy(ST(0));
     SvUPGRADE(shortpath, SVt_PV);
+    if (!SvPVX(shortpath) || !SvLEN(shortpath))
+        XSRETURN_UNDEF;
+
     /* src == target is allowed */
     do {
        len = GetShortPathName(SvPVX(shortpath),
@@ -3939,6 +3944,9 @@ XS(w32_GetFullPathName)
     filename = ST(0);
     fullpath = sv_mortalcopy(filename);
     SvUPGRADE(fullpath, SVt_PV);
+    if (!SvPVX(fullpath) || !SvLEN(fullpath))
+        XSRETURN_UNDEF;
+
     do {
        len = GetFullPathName(SvPVX(filename),
                              SvLEN(fullpath),
@@ -4135,7 +4143,7 @@ Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst)
     Newz(1313, dst->children, 1, child_tab);
     dst->pseudo_id             = 0;
     Newz(1313, dst->pseudo_children, 1, child_tab);
-    dst->thr_intern.Winit_socktype = src->thr_intern.Winit_socktype;
+    dst->thr_intern.Winit_socktype = 0;
 }
 #  endif /* USE_ITHREADS */
 #endif /* HAVE_INTERP_INTERN */