Change 30281 by [EMAIL PROTECTED] on 2007/02/14 13:33:27

        Integrate:
        [ 28003]
        Subject: Merge WinCE and Win32 directories -- Initial patch
        From: demerphq <[EMAIL PROTECTED]>
        Date: 27-Apr-2006 23:30
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/maint-5.8/perl/win32/config_h.PL#2 integrate
... //depot/maint-5.8/perl/win32/dl_win32.xs#4 integrate
... //depot/maint-5.8/perl/win32/include/sys/socket.h#3 integrate
... //depot/maint-5.8/perl/win32/perlhost.h#8 integrate
... //depot/maint-5.8/perl/win32/perllib.c#5 integrate
... //depot/maint-5.8/perl/win32/vdir.h#2 integrate
... //depot/maint-5.8/perl/win32/vmem.h#3 integrate
... //depot/maint-5.8/perl/win32/win32.h#11 integrate

Differences ...

==== //depot/maint-5.8/perl/win32/config_h.PL#2 (text) ====
Index: perl/win32/config_h.PL
--- perl/win32/config_h.PL#1~17645~     2002-07-19 12:29:57.000000000 -0700
+++ perl/win32/config_h.PL      2007-02-14 05:33:27.000000000 -0800
@@ -2,8 +2,8 @@
 BEGIN { warn "Running ".__FILE__."\n" };
 BEGIN 
  {
-  require "../lib/Config.pm";
-  die "../Config.pm:$@" if $@;
+  require "Config.pm";
+  die "Config.pm:$@" if $@;
   Config::->import;
  }
 use File::Compare qw(compare);
@@ -18,6 +18,7 @@
  }
 
 $opt{CONFIG_H} ||= 'config.h';
+$opt{CORE_DIR} ||= '../lib/CORE';
 
 warn "Writing $opt{CONFIG_H}\n";
 
@@ -76,9 +77,9 @@
 close(SH);
 
 
-chmod(0666,"../lib/CORE/config.h");
-copy("$file.new","../lib/CORE/config.h") || die "Cannot copy:$!";
-chmod(0444,"../lib/CORE/config.h");
+chmod(0666,"$opt{CORE_DIR}/$opt{CONFIG_H}");
+copy("$file.new","$opt{CORE_DIR}/$opt{CONFIG_H}") || die "Cannot copy:$!";
+chmod(0444,"$opt{CORE_DIR}/$opt{CONFIG_H}");
 
 if (compare("$file.new",$file))
  {

==== //depot/maint-5.8/perl/win32/dl_win32.xs#4 (text) ====
Index: perl/win32/dl_win32.xs
--- perl/win32/dl_win32.xs#3~25539~     2005-09-21 08:02:51.000000000 -0700
+++ perl/win32/dl_win32.xs      2007-02-14 05:33:27.000000000 -0800
@@ -119,7 +119,7 @@
        RETVAL = PerlProc_DynaLoad(filename);
     }
     else
-       RETVAL = (void*) GetModuleHandle(NULL);
+       RETVAL = (void*) Win_GetModuleHandle(NULL);
     DLDEBUG(2,PerlIO_printf(Perl_debug_log," libref=%x\n", RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)

==== //depot/maint-5.8/perl/win32/include/sys/socket.h#3 (text) ====
Index: perl/win32/include/sys/socket.h
--- perl/win32/include/sys/socket.h#2~26689~    2006-01-06 15:03:51.000000000 
-0800
+++ perl/win32/include/sys/socket.h     2007-02-14 05:33:27.000000000 -0800
@@ -10,12 +10,50 @@
 extern "C" {
 #endif
 
+#ifndef   _WINCE
+
 #define WIN32_LEAN_AND_MEAN
 #ifdef __GNUC__
 #  define Win32_Winsock
 #endif
 #include <windows.h>
 
+#else
+/*_WINCE*/
+#ifndef FAR
+#define  FAR
+#endif
+
+#define  PASCAL     __stdcall
+#define  WINAPI     __stdcall
+
+#undef WORD
+typedef  int        BOOL;
+typedef  unsigned short WORD;
+typedef  void*      HANDLE;
+typedef  void*      HWND;
+typedef  int (FAR WINAPI *FARPROC)();
+
+typedef unsigned long       DWORD;
+typedef void *PVOID;
+
+#define IN
+#define OUT
+
+#ifndef UNDER_CE
+typedef struct _OVERLAPPED {
+   DWORD   Internal;
+   DWORD   InternalHigh;
+   DWORD   Offset;
+   DWORD   OffsetHigh;
+   HANDLE  hEvent;
+} OVERLAPPED, *LPOVERLAPPED;
+#endif
+
+#undef   HOST_NOT_FOUND
+
+#endif  /*_WINCE*/
+
 /* Too late to include winsock2.h if winsock.h has already been loaded */
 #ifndef _WINSOCKAPI_
 #  include <winsock2.h>

==== //depot/maint-5.8/perl/win32/perlhost.h#8 (text) ====
Index: perl/win32/perlhost.h
--- perl/win32/perlhost.h#7~30138~      2007-02-05 11:37:53.000000000 -0800
+++ perl/win32/perlhost.h       2007-02-14 05:33:27.000000000 -0800
@@ -7,12 +7,16 @@
  *    License or the Artistic License, as specified in the README file.
  */
 
+#ifndef UNDER_CE
 #define CHECK_HOST_INTERP
+#endif
 
 #ifndef ___PerlHost_H___
 #define ___PerlHost_H___
 
+#ifndef UNDER_CE
 #include <signal.h>
+#endif
 #include "iperlsys.h"
 #include "vmem.h"
 #include "vdir.h"
@@ -823,6 +827,7 @@
 FILE*
 PerlStdIOFdupopen(struct IPerlStdIO* piPerl, FILE* pf)
 {
+#ifndef UNDER_CE
     FILE* pfdup;
     fpos_t pos;
     char mode[3];
@@ -870,6 +875,9 @@
        fsetpos(pfdup, &pos);
     }
     return pfdup;
+#else
+    return 0;
+#endif
 }
 
 struct IPerlStdIO perlStdIO =
@@ -2118,6 +2126,10 @@
 LPSTR*
 CPerlHost::Lookup(LPCSTR lpStr)
 {
+#ifdef UNDER_CE
+    if (!m_lppEnvList || !m_dwEnvCount)
+       return NULL;
+#endif
     if (!lpStr)
        return NULL;
     return (LPSTR*)bsearch(&lpStr, m_lppEnvList, m_dwEnvCount, sizeof(LPSTR), 
lookup);

==== //depot/maint-5.8/perl/win32/perllib.c#5 (text) ====
Index: perl/win32/perllib.c
--- perl/win32/perllib.c#4~30269~       2007-02-13 13:18:26.000000000 -0800
+++ perl/win32/perllib.c        2007-02-14 05:33:27.000000000 -0800
@@ -40,6 +40,9 @@
 
 #ifdef PERL_IMPLICIT_SYS
 
+/* WINCE: include replaced by:
+extern "C" void win32_checkTLS(PerlInterpreter *host_perl);
+*/
 #include "perlhost.h"
 
 void
@@ -48,11 +51,45 @@
     dTHX;
     if (host_perl != my_perl) {
        int *nowhere = NULL;
-        *nowhere = 0; 
+#ifdef _WIN_CE
+       printf(" ... bad in win32_checkTLS\n");
+       printf("  %08X ne %08X\n",host_perl,my_perl);
+#endif
        abort();
     }
 }
 
+#ifdef UNDER_CE
+int GetLogicalDrives() {
+    return 0; /* no logical drives on CE */
+}
+int GetLogicalDriveStrings(int size, char addr[]) {
+    return 0; /* no logical drives on CE */
+}
+/* TBD */
+DWORD GetFullPathNameA(LPCSTR fn, DWORD blen, LPTSTR buf,  LPSTR *pfile) {
+    return 0;
+}
+/* TBD */
+DWORD GetFullPathNameW(CONST WCHAR *fn, DWORD blen, WCHAR * buf,  WCHAR 
**pfile) {
+    return 0;
+}
+/* TBD */
+DWORD SetCurrentDirectoryA(LPSTR pPath) {
+    return 0;
+}
+/* TBD */
+DWORD SetCurrentDirectoryW(CONST WCHAR *pPath) {
+    return 0;
+}
+int xcesetuid(uid_t id){return 0;}
+int xceseteuid(uid_t id){  return 0;}
+int xcegetuid() {return 0;}
+int xcegeteuid(){ return 0;}
+#endif
+
+/* WINCE??: include "perlhost.h" */
+
 EXTERN_C void
 perl_get_host_info(struct IPerlMemInfo* perlMemInfo,
                   struct IPerlMemInfo* perlMemSharedInfo,
@@ -177,7 +214,7 @@
      * Borland's CRT does the right thing to argv[0] already. */
     char szModuleName[MAX_PATH];
 
-    GetModuleFileName(NULL, szModuleName, sizeof(szModuleName));
+    Win_GetModuleFileName(NULL, szModuleName, sizeof(szModuleName));
     (void)win32_longpath(szModuleName);
     argv[0] = szModuleName;
 #endif
@@ -254,7 +291,11 @@
        setmode( fileno( stderr ), O_BINARY );
        _fmode = O_BINARY;
 #endif
+
+#ifndef UNDER_CE
        DisableThreadLibraryCalls((HMODULE)hModule);
+#endif
+
        w32_perldll_handle = hModule;
        set_w32_module_name();
        break;
@@ -290,6 +331,7 @@
     return TRUE;
 }
 
+
 #if defined(USE_ITHREADS) && defined(PERL_IMPLICIT_SYS)
 EXTERN_C PerlInterpreter *
 perl_clone_host(PerlInterpreter* proto_perl, UV flags) {

==== //depot/maint-5.8/perl/win32/vdir.h#2 (text) ====
Index: perl/win32/vdir.h
--- perl/win32/vdir.h#1~17645~  2002-07-19 12:29:57.000000000 -0700
+++ perl/win32/vdir.h   2007-02-14 05:33:27.000000000 -0800
@@ -150,7 +150,7 @@
        bManageDirectory = 0;
        driveBits = GetLogicalDrives();
        if (GetLogicalDriveStrings(sizeof(szBuffer), szBuffer)) {
-           char* pEnv = GetEnvironmentStrings();
+           char* pEnv = (char*)GetEnvironmentStrings();
            char* ptr = szBuffer;
            for (index = 0; index < driveCount; ++index) {
                if (driveBits & (1<<index)) {

==== //depot/maint-5.8/perl/win32/vmem.h#3 (text) ====
Index: perl/win32/vmem.h
--- perl/win32/vmem.h#2~18911~  2003-03-10 23:02:41.000000000 -0800
+++ perl/win32/vmem.h   2007-02-14 05:33:27.000000000 -0800
@@ -21,7 +21,9 @@
 #ifndef ___VMEM_H_INC___
 #define ___VMEM_H_INC___
 
+#ifndef _WIN_CE
 #define _USE_MSVCRT_MEM_ALLOC
+#endif
 #define _USE_LINKED_LIST
 
 // #define _USE_BUDDY_BLOCKS

==== //depot/maint-5.8/perl/win32/win32.h#11 (text) ====
Index: perl/win32/win32.h
--- perl/win32/win32.h#10~30138~        2007-02-05 11:37:53.000000000 -0800
+++ perl/win32/win32.h  2007-02-14 05:33:27.000000000 -0800
@@ -564,5 +564,17 @@
 DllExport void *win32_signal_context(void);
 #define PERL_GET_SIG_CONTEXT win32_signal_context()
 
+#ifdef _WIN_CE
+#define Win_GetModuleHandle   XCEGetModuleHandleA
+#define Win_GetProcAddress    XCEGetProcAddressA
+#define Win_GetModuleFileName XCEGetModuleFileNameA
+#define Win_CreateSemaphore   CreateSemaphoreW
+#else
+#define Win_GetModuleHandle   GetModuleHandle
+#define Win_GetProcAddress    GetProcAddress
+#define Win_GetModuleFileName GetModuleFileName
+#define Win_CreateSemaphore   CreateSemaphore
+#endif
+
 #endif /* _INC_WIN32_PERL5 */
 
End of Patch.

Reply via email to