X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2Fperllib.c;h=5ce8fe7694593173f696abff13b571efa561b4c5;hb=7bd379e81ea13d83ac434499c69ddde30e5c4259;hp=3acfca120433675edbfaf3a2e6423e91d3d07202;hpb=ff235dd6d6f5e19e11c9202d4a82fb8e5fbadadd;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/perllib.c b/win32/perllib.c index 3acfca1..5ce8fe7 100644 --- a/win32/perllib.c +++ b/win32/perllib.c @@ -40,6 +40,9 @@ xs_init(pTHX) #ifdef PERL_IMPLICIT_SYS +/* WINCE: include replaced by: +extern "C" void win32_checkTLS(PerlInterpreter *host_perl); +*/ #include "perlhost.h" void @@ -48,11 +51,45 @@ win32_checkTLS(PerlInterpreter *host_perl) 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 @@ RunPerl(int argc, char **argv, char **env) * 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 @@ DllMain(HANDLE hModule, /* DLL module handle */ 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 @@ DllMain(HANDLE hModule, /* DLL module handle */ return TRUE; } + #if defined(USE_ITHREADS) && defined(PERL_IMPLICIT_SYS) EXTERN_C PerlInterpreter * perl_clone_host(PerlInterpreter* proto_perl, UV flags) {