From fe7cf054af9e8fec20a4e6ca0589b901e8b79a7f Mon Sep 17 00:00:00 2001 From: "dougt%meer.net" Date: Mon, 30 Jan 2006 18:46:01 +0000 Subject: [PATCH] WinCE only. Updating existing windows ce tools to match the trunk git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@188472 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/build/wince/shunt/a2w.cpp | 4 +- mozilla/build/wince/shunt/build/shunt.vcb | Bin 271360 -> 443392 bytes mozilla/build/wince/shunt/build/shunt.vcl | 33 - mozilla/build/wince/shunt/build/shunt.vco | Bin 53760 -> 49664 bytes mozilla/build/wince/shunt/build/shunt.vcp | 814 +----------------- .../build/wince/shunt/include/mozce_defs.h | 414 +++++++-- .../build/wince/shunt/include/mozce_shunt.h | 216 ++--- mozilla/build/wince/shunt/mbstring.cpp | 2 +- mozilla/build/wince/shunt/mozce_internal.h | 12 +- mozilla/build/wince/shunt/nclog.cpp | 32 +- mozilla/build/wince/shunt/process.cpp | 11 +- mozilla/build/wince/shunt/stat.cpp | 2 +- mozilla/build/wince/shunt/stdio.cpp | 36 +- mozilla/build/wince/shunt/stdlib.cpp | 15 +- mozilla/build/wince/shunt/w2a.cpp | 4 +- mozilla/build/wince/shunt/win32.cpp | 376 +++++--- mozilla/build/wince/shunt/win32A.cpp | 183 ++-- mozilla/build/wince/shunt/win32W.cpp | 2 +- .../wince/tools/ppc2003arm/arm-wince-gcc.c | 9 +- .../wince/tools/ppc2003arm/arm-wince-link.c | 5 + .../build/wince/tools/ppc2003arm/toolpaths.h | 12 +- 21 files changed, 928 insertions(+), 1254 deletions(-) diff --git a/mozilla/build/wince/shunt/a2w.cpp b/mozilla/build/wince/shunt/a2w.cpp index c6c699f0d63..693d1cf901b 100755 --- a/mozilla/build/wince/shunt/a2w.cpp +++ b/mozilla/build/wince/shunt/a2w.cpp @@ -40,7 +40,7 @@ #include "mozce_internal.h" -int a2w_buffer(LPCSTR inACPString, int inACPChars, LPWSTR outWideString, int inWideChars) +int a2w_buffer(const char* inACPString, int inACPChars, unsigned short* outWideString, int inWideChars) { int retval = 0; @@ -74,7 +74,7 @@ int a2w_buffer(LPCSTR inACPString, int inACPChars, LPWSTR outWideString, int inW } -LPWSTR a2w_malloc(LPCSTR inACPString, int inACPChars, int* outWideChars) +unsigned short* a2w_malloc(const char* inACPString, int inACPChars, int* outWideChars) { LPWSTR retval = NULL; diff --git a/mozilla/build/wince/shunt/build/shunt.vcb b/mozilla/build/wince/shunt/build/shunt.vcb index 1f51590fe920e1d7d6d71a7521c5ed70eccdc55b..bec93f2e60dc1ff68deeda34433a444c5dae410c 100755 GIT binary patch literal 443392 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 delta 40831 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

Build Log

---------------------Configuration: shunt - Win32 (WCE ARMV4) SmartPhone-------------------- -

-

Command Lines

- - - - - -

Results

-shunt.dll - 0 error(s), 0 warning(s) -

--------------------Configuration: shunt - Win32 (WCE ARMV4) Debug--------------------

Command Lines

@@ -22,17 +11,6 @@ shunt.dll - 0 error(s), 0 warning(s) -

Results

-shunt.dll - 0 error(s), 0 warning(s) -

---------------------Configuration: shunt - Win32 (WCE emulator) Release-------------------- -

-

Command Lines

- - - - -

Results

shunt.dll - 0 error(s), 0 warning(s)

@@ -44,17 +22,6 @@ shunt.dll - 0 error(s), 0 warning(s) -

Results

-shunt.dll - 0 error(s), 0 warning(s) -

---------------------Configuration: shunt - Win32 (WCE emulator) Debug-------------------- -

-

Command Lines

- - - - -

Results

shunt.dll - 0 error(s), 0 warning(s) diff --git a/mozilla/build/wince/shunt/build/shunt.vco b/mozilla/build/wince/shunt/build/shunt.vco index ed3cf26995865e75427c638b485c9eda5522ff71..588d3cc411c0a227d70b0024bdf583a735237f3e 100755 GIT binary patch literal 49664 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 diff --git a/mozilla/build/wince/shunt/build/shunt.vcp b/mozilla/build/wince/shunt/build/shunt.vcp index 4e6fb52b355..4a6f6378ee2 100755 --- a/mozilla/build/wince/shunt/build/shunt.vcp +++ b/mozilla/build/wince/shunt/build/shunt.vcp @@ -2,10 +2,9 @@ # Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02 # ** DO NOT EDIT ** -# TARGTYPE "Win32 (WCE emulator) Dynamic-Link Library" 0xa602 # TARGTYPE "Win32 (WCE ARMV4) Dynamic-Link Library" 0xa302 -CFG=shunt - Win32 (WCE emulator) Release +CFG=shunt - Win32 (WCE ARMV4) Release !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE @@ -14,15 +13,12 @@ CFG=shunt - Win32 (WCE emulator) Release !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE -!MESSAGE NMAKE /f "shunt.vcn" CFG="shunt - Win32 (WCE emulator) Release" +!MESSAGE NMAKE /f "shunt.vcn" CFG="shunt - Win32 (WCE ARMV4) Release" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE -!MESSAGE "shunt - Win32 (WCE emulator) Release" (based on "Win32 (WCE emulator) Dynamic-Link Library") -!MESSAGE "shunt - Win32 (WCE emulator) Debug" (based on "Win32 (WCE emulator) Dynamic-Link Library") !MESSAGE "shunt - Win32 (WCE ARMV4) Release" (based on "Win32 (WCE ARMV4) Dynamic-Link Library") !MESSAGE "shunt - Win32 (WCE ARMV4) Debug" (based on "Win32 (WCE ARMV4) Dynamic-Link Library") -!MESSAGE "shunt - Win32 (WCE ARMV4) SmartPhone" (based on "Win32 (WCE ARMV4) Dynamic-Link Library") !MESSAGE # Begin Project @@ -30,78 +26,11 @@ CFG=shunt - Win32 (WCE emulator) Release # PROP Scc_ProjName "" # PROP Scc_LocalPath "" # PROP ATL_Project 2 - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "emulatorRel" -# PROP BASE Intermediate_Dir "emulatorRel" -# PROP BASE CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" -# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "emulatorRel" -# PROP Intermediate_Dir "emulatorRel" -# PROP CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" -# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r -# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "SHUNT_EXPORTS" /Yu"stdafx.h" /Gs8192 /GF /O2 /c -# ADD CPP /nologo /W3 /I "../include" /D "_i386_" /D "_X86_" /D "x86" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "SHUNT_EXPORTS" /D "MOZCE_SHUNT_EXPORTS" /Gs8192 /GF /O2 /c -# SUBTRACT CPP /Gf /Gy /YX /Yc /Yu +CPP=clarm.exe MTL=midl.exe -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 -# ADD LINK32 $(CEx86Corelibc) commctrl.lib coredll.lib uuid.lib /nologo /base:"0x00100000" /stack:0x5000000 /entry:"_DllMainCRTStartup" /dll /pdb:none /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 -# SUBTRACT LINK32 /map - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "emulatorDbg" -# PROP BASE Intermediate_Dir "emulatorDbg" -# PROP BASE CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" -# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "emulatorDbg" -# PROP Intermediate_Dir "emulatorDbg" -# PROP CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}" -# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" RSC=rc.exe -# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r -# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "SHUNT_EXPORTS" /Yu"stdafx.h" /Gs8192 /GF /c -# ADD CPP /nologo /W3 /Zi /Od /I "../include" /D "DEBUG" /D "_i386_" /D "_X86_" /D "x86" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "SHUNT_EXPORTS" /D "MOZCE_SHUNT_EXPORTS" /Gs8192 /GF /c -# SUBTRACT CPP /Gf /Gy /YX /Yc /Yu -MTL=midl.exe -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 -# ADD LINK32 $(CEx86Corelibc) commctrl.lib coredll.lib uuid.lib /nologo /base:"0x00100000" /stack:0x5000000 /entry:"_DllMainCRTStartup" /dll /pdb:none /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86 -# SUBTRACT LINK32 /map -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" +!IF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 @@ -118,14 +47,11 @@ LINK32=link.exe # PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -RSC=rc.exe # ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r # ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r -CPP=clarm.exe # ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "SHUNT_EXPORTS" /Yu"stdafx.h" /O2 /M$(CECrtMT) /c -# ADD CPP /nologo /W3 /I "../include" /D "ARM" /D "_ARM_" /D "ARMV4" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "SHUNT_EXPORTS" /D "MOZCE_SHUNT_EXPORTS" /FR /O2 /M$(CECrtMT) /c -# SUBTRACT CPP /Gf /Gy /YX /Yc /Yu -MTL=midl.exe +# ADD CPP /nologo /W3 /Oxt /I "../include" /D "ARM" /D "_ARM_" /D "ARMV4" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "SHUNT_EXPORTS" /D "MOZCE_SHUNT_EXPORTS" /FR /M$(CECrtMT) /c +# SUBTRACT CPP /YX /Yc /Yu # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 BSC32=bscmake.exe @@ -133,8 +59,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM -# ADD LINK32 commctrl.lib coredll.lib uuid.lib /nologo /base:"0x00100000" /stack:0x5000000 /entry:"_DllMainCRTStartup" /dll /pdb:none /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM -# SUBTRACT LINK32 /map +# ADD LINK32 commctrl.lib coredll.lib ole32.lib uuid.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM !ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" @@ -153,14 +78,11 @@ LINK32=link.exe # PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -RSC=rc.exe # ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r # ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "DEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r -CPP=clarm.exe # ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "SHUNT_EXPORTS" /Yu"stdafx.h" /M$(CECrtMTDebug) /c # ADD CPP /nologo /W3 /Zi /Od /I "../include" /D "DEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "SHUNT_EXPORTS" /D "MOZCE_SHUNT_EXPORTS" /M$(CECrtMTDebug) /c # SUBTRACT CPP /Gf /Gy /YX /Yc /Yu -MTL=midl.exe # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 BSC32=bscmake.exe @@ -168,892 +90,172 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM -# ADD LINK32 commctrl.lib coredll.lib uuid.lib /nologo /base:"0x00100000" /stack:0x5000000 /entry:"_DllMainCRTStartup" /dll /pdb:none /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM -# SUBTRACT LINK32 /map - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "ARMV4SmartPhone" -# PROP BASE Intermediate_Dir "ARMV4SmartPhone" -# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" -# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" -# PROP BASE Ignore_Export_Lib 0 -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "ARMV4SmartPhone" -# PROP Intermediate_Dir "ARMV4SmartPhone" -# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}" -# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r -# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "NDEBUG" /d "UNICODE" /d "_UNICODE" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /d "ARMV4" /r -CPP=clarm.exe -# ADD BASE CPP /nologo /W3 /D "ARM" /D "_ARM_" /D "ARMV4" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "SHUNT_EXPORTS" /D "MOZCE_SHUNT_EXPORTS" /FR /O2 /M$(CECrtMT) /c -# SUBTRACT BASE CPP /Gf /Gy /YX /Yc /Yu -# ADD CPP /nologo /W3 /I "../include" /D "ARM" /D "_ARM_" /D "ARMV4" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "SHUNT_EXPORTS" /D "MOZCE_SHUNT_EXPORTS" /FR /O2 /M$(CECrtMT) /c -# SUBTRACT CPP /Gf /Gy /YX /Yc /Yu -MTL=midl.exe -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x1000000 /entry:"_DllMainCRTStartup" /dll /pdb:none /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM -# SUBTRACT BASE LINK32 /map -# ADD LINK32 commctrl.lib coredll.lib uuid.lib /nologo /base:"0x00100000" /stack:0x5000000 /entry:"_DllMainCRTStartup" /dll /pdb:none /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM -# SUBTRACT LINK32 /map +# ADD LINK32 commctrl.lib coredll.lib ole32.lib uuid.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM !ENDIF # Begin Target -# Name "shunt - Win32 (WCE emulator) Release" -# Name "shunt - Win32 (WCE emulator) Debug" # Name "shunt - Win32 (WCE ARMV4) Release" # Name "shunt - Win32 (WCE ARMV4) Debug" -# Name "shunt - Win32 (WCE ARMV4) SmartPhone" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\a2w.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_A2W_C=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_A2W_C=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_A2W_C=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_A2W_C=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_A2W_C=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\assert.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_ASSER=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_ASSER=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_ASSER=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_ASSER=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_ASSER=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\clipboard.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_CLIPB=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_CLIPB=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_CLIPB=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_CLIPB=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_CLIPB=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\direct.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_DIREC=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_DIREC=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_DIREC=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_DIREC=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_DIREC=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\errno.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_ERRNO=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_ERRNO=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_ERRNO=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_ERRNO=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_ERRNO=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\io.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_IO_CP=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_IO_CP=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_IO_CP=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_IO_CP=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_IO_CP=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\mbstring.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_MBSTR=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_MBSTR=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_MBSTR=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_MBSTR=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_MBSTR=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\nclog.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_NCLOG=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_NCLOG=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_NCLOG=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_NCLOG=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_NCLOG=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\process.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - -DEP_CPP_PROCE=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - -NODEP_CPP_PROCE=\ - ".\funcs.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_PROCE=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - -NODEP_CPP_PROCE=\ - ".\funcs.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_PROCE=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - -NODEP_CPP_PROCE=\ - ".\funcs.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - DEP_CPP_PROCE=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ {$(INCLUDE)}"kfuncs.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_PROCE=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - -NODEP_CPP_PROCE=\ - ".\funcs.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\signal.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_SIGNA=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_SIGNA=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_SIGNA=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_SIGNA=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_SIGNA=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\stat.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_STAT_=\ "..\include\mozce_defs.h"\ "..\include\time_conversions.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_STAT_=\ - "..\include\mozce_defs.h"\ - "..\include\time_conversions.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_STAT_=\ - "..\include\mozce_defs.h"\ - "..\include\time_conversions.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_STAT_=\ - "..\include\mozce_defs.h"\ - "..\include\time_conversions.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_STAT_=\ - "..\include\mozce_defs.h"\ - "..\include\time_conversions.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\stdio.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_STDIO=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_STDIO=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_STDIO=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_STDIO=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_STDIO=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\stdlib.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_STDLI=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_STDLI=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_STDLI=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_STDLI=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_STDLI=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\string.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_STRIN=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_STRIN=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_STRIN=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_STRIN=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_STRIN=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\time.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_TIME_=\ "..\include\mozce_defs.h"\ "..\include\time_conversions.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_TIME_=\ - "..\include\mozce_defs.h"\ - "..\include\time_conversions.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_TIME_=\ - "..\include\mozce_defs.h"\ - "..\include\time_conversions.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_TIME_=\ - "..\include\mozce_defs.h"\ - "..\include\time_conversions.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_TIME_=\ - "..\include\mozce_defs.h"\ - "..\include\time_conversions.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\w2a.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_W2A_C=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_W2A_C=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_W2A_C=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_W2A_C=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_W2A_C=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\win32.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - -DEP_CPP_WIN32=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - -NODEP_CPP_WIN32=\ - ".\funcs.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_WIN32=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - -NODEP_CPP_WIN32=\ - ".\funcs.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_WIN32=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - -NODEP_CPP_WIN32=\ - ".\funcs.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - DEP_CPP_WIN32=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ {$(INCLUDE)}"kfuncs.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_WIN32=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - -NODEP_CPP_WIN32=\ - ".\funcs.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\win32A.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_WIN32A=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_WIN32A=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_WIN32A=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_WIN32A=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_WIN32A=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # Begin Source File SOURCE=..\win32W.cpp - -!IF "$(CFG)" == "shunt - Win32 (WCE emulator) Release" - DEP_CPP_WIN32W=\ "..\include\mozce_defs.h"\ "..\mozce_internal.h"\ - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE emulator) Debug" - -DEP_CPP_WIN32W=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Release" - -DEP_CPP_WIN32W=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) Debug" - -DEP_CPP_WIN32W=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ELSEIF "$(CFG)" == "shunt - Win32 (WCE ARMV4) SmartPhone" - -DEP_CPP_WIN32W=\ - "..\include\mozce_defs.h"\ - "..\mozce_internal.h"\ - - -!ENDIF - # End Source File # End Group # Begin Group "Header Files" diff --git a/mozilla/build/wince/shunt/include/mozce_defs.h b/mozilla/build/wince/shunt/include/mozce_defs.h index 28dfeaede2c..8f4512f051a 100755 --- a/mozilla/build/wince/shunt/include/mozce_defs.h +++ b/mozilla/build/wince/shunt/include/mozce_defs.h @@ -34,8 +34,18 @@ * * ***** END LICENSE BLOCK ***** */ -#ifndef MOZCE_DEFS -#define MOZCE_DEFS +#ifndef _MOZCE_DEFS +#define _MOZCE_DEFS + +#ifndef MOZCE_STATIC_BUILD +#ifdef MOZCE_SHUNT_EXPORTS +#define MOZCE_SHUNT_API __declspec(dllexport) +#else +#define MOZCE_SHUNT_API __declspec(dllimport) +#endif +#else +#define MOZCE_SHUNT_API +#endif //#define USE_NC_LOGGING 1 @@ -59,53 +69,249 @@ #undef max #endif -#ifdef MOZCE_SHUNT_EXPORTS -#define MOZCE_SHUNT_API __declspec(dllexport) -#else -#define MOZCE_SHUNT_API __declspec(dllimport) -#endif - - ////////////////////////////////////////////////////////// // Various Definations ////////////////////////////////////////////////////////// // for errors.h -#define EINVAL __LINE__ -#define EAGAIN __LINE__ -#define EINTR __LINE__ -#define ENOMEM __LINE__ -#define EBADF __LINE__ -#define EFAULT __LINE__ -#define EACCES __LINE__ -#define EIO __LINE__ -#define ENOTDIR __LINE__ -#define EDEADLOCK __LINE__ -#define EFBIG __LINE__ -#define ENOSPC __LINE__ -#define EPIPE __LINE__ -#define ESPIPE __LINE__ -#define EISDIR __LINE__ -#define ENOENT __LINE__ -#define EROFS __LINE__ -#define EBUSY __LINE__ -#define EXDEV __LINE__ -#define EEXIST __LINE__ -#define ENFILE __LINE__ -#define EDEADLK __LINE__ -#define ERANGE __LINE__ -#define EPERM __LINE__ -#define ENOSYS __LINE__ + +#ifdef EPERM +#undef EPERM +#endif +#define EPERM 1 /* Operation not permitted */ + +#ifdef ENOENT +#undef ENOENT +#endif +#define ENOENT 2 /* No such file or directory */ + +#ifdef ESRCH +#undef ESRCH +#endif +#define ESRCH 3 /* No such process */ + +#ifdef EINTR +#undef EINTR +#endif +#define EINTR 4 /* Interrupted system call */ + +#ifdef EIO +#undef EIO +#endif +#define EIO 5 /* Input/output error */ + +#ifdef ENXIO +#undef ENXIO +#endif +#define ENXIO 6 /* Device not configured */ + +#ifdef E2BIG +#undef E2BIG +#endif +#define E2BIG 7 /* Argument list too long */ + +#ifdef ENOEXEC +#undef ENOEXEC +#endif +#define ENOEXEC 8 /* Exec format error */ + +#ifdef EBADF +#undef EBADF +#endif +#define EBADF 9 /* Bad file descriptor */ + +#ifdef ECHILD +#undef ECHILD +#endif +#define ECHILD 10 /* No child processes */ + +#ifdef EDEADLK +#undef EDEADLK +#endif +#define EDEADLK 11 /* Resource deadlock avoided */ + +#ifdef was +#undef was +#endif + /* 11 was EAGAIN */ + +#ifdef ENOMEM +#undef ENOMEM +#endif +#define ENOMEM 12 /* Cannot allocate memory */ + +#ifdef EACCES +#undef EACCES +#endif +#define EACCES 13 /* Permission denied */ + +#ifdef EFAULT +#undef EFAULT +#endif +#define EFAULT 14 /* Bad address */ + +#ifdef ENOTBLK +#undef ENOTBLK +#endif +#define ENOTBLK 15 /* Block device required */ + +#ifdef EBUSY +#undef EBUSY +#endif +#define EBUSY 16 /* Device busy */ + +#ifdef EEXIST +#undef EEXIST +#endif +#define EEXIST 17 /* File exists */ + +#ifdef EXDEV +#undef EXDEV +#endif +#define EXDEV 18 /* Cross-device link */ + +#ifdef ENODEV +#undef ENODEV +#endif +#define ENODEV 19 /* Operation not supported by device */ + +#ifdef ENOTDIR +#undef ENOTDIR +#endif +#define ENOTDIR 20 /* Not a directory */ + +#ifdef EISDIR +#undef EISDIR +#endif +#define EISDIR 21 /* Is a directory */ + +#ifdef EINVAL +#undef EINVAL +#endif +#define EINVAL 22 /* Invalid argument */ + +#ifdef ENFILE +#undef ENFILE +#endif +#define ENFILE 23 /* Too many open files in system */ + +#ifdef EMFILE +#undef EMFILE +#endif +#define EMFILE 24 /* Too many open files */ + +#ifdef ENOTTY +#undef ENOTTY +#endif +#define ENOTTY 25 /* Inappropriate ioctl for device */ + +#ifdef ETXTBSY +#undef ETXTBSY +#endif +#define ETXTBSY 26 /* Text file busy */ + +#ifdef EFBIG +#undef EFBIG +#endif +#define EFBIG 27 /* File too large */ + +#ifdef ENOSPC +#undef ENOSPC +#endif +#define ENOSPC 28 /* No space left on device */ + +#ifdef ESPIPE +#undef ESPIPE +#endif +#define ESPIPE 29 /* Illegal seek */ + +#ifdef EROFS +#undef EROFS +#endif +#define EROFS 30 /* Read-only file system */ + +#ifdef EMLINK +#undef EMLINK +#endif +#define EMLINK 31 /* Too many links */ + +#ifdef EPIPE +#undef EPIPE +#endif +#define EPIPE 32 /* Broken pipe */ + +#ifdef EDOM +#undef EDOM +#endif +#define EDOM 33 /* Numerical argument out of domain */ + +#ifdef ERANGE +#undef ERANGE +#endif +#define ERANGE 34 /* Result too large */ + +#ifdef EAGAIN +#undef EAGAIN +#endif +#define EAGAIN 35 /* Resource temporarily unavailable */ + +// in winsock.h + +#ifdef EBADRPC +#undef EBADRPC +#endif +#define EBADRPC 72 /* RPC struct is bad */ + +#ifdef ERPCMISMATCH +#undef ERPCMISMATCH +#endif +#define ERPCMISMATCH 73 /* RPC version wrong */ + +#ifdef EPROGUNAVAIL +#undef EPROGUNAVAIL +#endif +#define EPROGUNAVAIL 74 /* RPC prog. not avail */ + +#ifdef EPROGMISMATCH +#undef EPROGMISMATCH +#endif +#define EPROGMISMATCH 75 /* Program version wrong */ + +#ifdef EPROCUNAVAIL +#undef EPROCUNAVAIL +#endif +#define EPROCUNAVAIL 76 /* Bad procedure for program */ + +#ifdef ENOLCK +#undef ENOLCK +#endif +#define ENOLCK 77 /* No locks available */ + +#ifdef ENOSYS +#undef ENOSYS +#endif +#define ENOSYS 78 /* Function not implemented */ + +#ifdef EOVERFLOW +#undef EOVERFLOW +#endif +#define EOVERFLOW 79 /* Value too large to be stored in data type */ + +// From cderr.h +#ifdef FNERR_INVALIDFILENAME +#undef FNERR_INVALIDFILENAME +#endif +#define FNERR_INVALIDFILENAME 0x3002 // From signal.h #define SIGABRT 0 #define SIGSEGV 1 #define _SIGCOUNT 2 /* LAST ONE, SIZES BUFFER */ -typedef void (*_sigsig)(int inSignal); - // From stdio.h +#define _MAX_FNAME 256 + #define BUFSIZ 512 #define O_RDONLY 0x0000 // open for reading only #define O_WRONLY 0x0001 // open for writing only @@ -126,16 +332,12 @@ typedef void (*_sigsig)(int inSignal); #define _O_WRONLY O_WRONLY // From stdlib.h -#define _MAX_DRIVE MAX_PATH -#define _MAX_DIR MAX_PATH -#define _MAX_EXT MAX_PATH -#define _MAX_FNAME MAX_PATH #define _MAX_PATH MAX_PATH // From sys/types.h typedef int ptrdiff_t; typedef long _off_t; - +typedef long off_t; // From sys/stat.h #if !defined(_STAT_DEFINED) @@ -144,7 +346,7 @@ typedef long _off_t; #define _S_IFREG 0100000 /* stat, is a normal file */ #define _S_IREAD 0000400 /* stat, can read */ #define _S_IWRITE 0000200 /* stat, can write */ -#define _S_IEXEC 0000100 +#define _S_IEXEC 0000100 struct mozce_stat { @@ -162,11 +364,8 @@ struct mozce_stat // From time.h -#ifdef MOZCE_SHUNT_EXPORTS +#define _TM_DEFINED struct tm { -#else -struct mozce_tm { -#endif int tm_sec; int tm_min; int tm_hour; @@ -179,13 +378,6 @@ struct mozce_tm { }; -struct mozce_lconv { - const char* thousandsSeparator; - const char* decimalSeparator; - const char* numGrouping; -}; - - typedef struct mozce_GLYPHMETRICS { UINT gmBlackBoxX; @@ -193,21 +385,7 @@ typedef struct mozce_GLYPHMETRICS POINT gmptGlyphOrigin; short gmCellIncX; short gmCellIncY; -} mozce_GLYPHMETRICS; - - -typedef struct mozce_FIXED { - WORD fract; - short value; -} mozce_FIXED; - -typedef struct mozce_MAT2 { - mozce_FIXED eM11; - mozce_FIXED eM12; - mozce_FIXED eM21; - mozce_FIXED eM22; -} mozce_MAT2; - +} mozce_GLYPHMETRICS; typedef struct mozce_PANOSE { BYTE bFamilyType; @@ -257,7 +435,9 @@ typedef struct mozce_OUTLINETEXTMETRIC PSTR otmpStyleName; PSTR otmpFullName; } mozce_OUTLINETEXTMETRIC; - + + +#define SW_SHOWMINIMIZED 2 #define GGO_METRICS 0 #define GGO_GLYPH_INDEX 1 @@ -272,25 +452,12 @@ typedef struct mozce_OUTLINETEXTMETRIC #define DISPID_WINDOWRESIZE (__LINE__ + 3000) /* 110 */ #define DISPID_WINDOWACTIVATE (__LINE__ + 3000) /* 111 */ - #define CBM_INIT 4 #ifndef MM_TEXT #define MM_TEXT 1 #endif - -typedef struct _BLENDFUNCTION -{ - BYTE BlendOp; - BYTE BlendFlags; - BYTE SourceConstantAlpha; - BYTE AlphaFormat; -} BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION; - -#define AC_SRC_OVER 0 - - #ifndef SM_CYVTHUMB #define SM_CYVTHUMB 9 #endif @@ -312,4 +479,87 @@ typedef struct _BLENDFUNCTION #define LR_LOADFROMFILE 0 #endif +#ifndef MA_NOACTIVATE +#define MA_NOACTIVATE 1 +#endif + +#ifndef MA_ACTIVATE +#define MA_ACTIVATE 1 +#endif + +#ifndef WM_MOUSEACTIVATE +#define WM_MOUSEACTIVATE WM_ACTIVATE +#endif + +typedef struct WINDOWPLACEMENT +{ + UINT length; + UINT flags; + UINT showCmd; + POINT ptMinPosition; + POINT ptMaxPosition; + RECT rcNormalPosition; +} WINDOWPLACEMENT, *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT; + +typedef void (*_sigsig)(int inSignal); + + +typedef struct mozce_FIXED { + WORD fract; + short value; +} mozce_FIXED; + +typedef struct mozce_MAT2 { + mozce_FIXED eM11; + mozce_FIXED eM12; + mozce_FIXED eM21; + mozce_FIXED eM22; +} mozce_MAT2; + + +//#if 0 + +#ifdef _BLENDFUNCTION +#undef _BLENDFUNCTION +#endif + +#ifdef BLENDFUNCTION +#undef BLENDFUNCTION +#endif + +#ifdef PBLENDFUNCTION +#undef PBLENDFUNCTION +#endif + +typedef struct _BLENDFUNCTION +{ + BYTE BlendOp; + BYTE BlendFlags; + BYTE SourceConstantAlpha; + BYTE AlphaFormat; +}BLENDFUNCTION,*PBLENDFUNCTION; + +//#endif + + +// +// currentlly defined blend function +// + +#define AC_SRC_OVER 0x00 + +// +// alpha format flags +// + +#define AC_SRC_ALPHA 0x01 + + +struct color{ + unsigned char Red; + unsigned char Green; + unsigned char Blue; + double Alpha; +}; + #endif diff --git a/mozilla/build/wince/shunt/include/mozce_shunt.h b/mozilla/build/wince/shunt/include/mozce_shunt.h index 590958dbadf..63f28b92319 100755 --- a/mozilla/build/wince/shunt/include/mozce_shunt.h +++ b/mozilla/build/wince/shunt/include/mozce_shunt.h @@ -50,6 +50,8 @@ // Function Mapping ////////////////////////////////////////////////////////// +#ifndef MOZCE_SHUNT_EXPORTS + // From asswert.cpp #ifdef _assert #undef _assert @@ -113,27 +115,6 @@ #endif #define _fileno mozce_fileno -// math.cpp -/* - #define fd_acos acos - #define fd_asin asin - #define fd_atan atan - #define fd_cos cos - #define fd_sin sin - #define fd_tan tan - #define fd_exp exp - #define fd_log log - #define fd_sqrt sqrt - #define fd_ceil ceil - #define fd_fabs fabs - #define fd_floor floor - #define fd_fmod fmod - #define fd_atan2 atan2 - #define fd_copysign _copysign - #define fd_pow pow - -*/ - // From mbstring.cpp #ifdef _mbsinc #undef _mbsinc @@ -187,6 +168,10 @@ #endif #define getpid mozce_getpid +#ifdef _getpid +#undef _getpid +#endif +#define _getpid mozce_getpid // From signal.cpp #ifdef raise @@ -386,17 +371,11 @@ #endif #define ctime mozce_ctime - #ifdef localeconv #undef localeconv #endif #define localeconv mozce_localeconv -//#ifdef lconv -//#undef lconv -//#endif -//#define lconv mozce_lconv - // From win32.cpp #ifdef Arc @@ -414,6 +393,11 @@ #endif #define CreateDIBitmap mozce_CreateDIBitmap +#ifdef CommDlgExtendedError +#undef CommDlgExtendedError +#endif +#define CommDlgExtendedError mozce_CommDlgExtendedError + #ifdef EnumChildWindows #undef EnumChildWindows #endif @@ -437,7 +421,18 @@ #ifdef ExpandEnvironmentStrings #undef ExpandEnvironmentStrings #endif -#define ExpandEnvironmentStrings mozce_ExpandEnvironmentStrings + +#ifdef ExpandEnvironmentStringsA +#undef ExpandEnvironmentStringsA +#endif + +#ifdef ExpandEnvironmentStringsW +#undef ExpandEnvironmentStringsW +#endif + +#define ExpandEnvironmentStrings mozce_ExpandEnvironmentStrings +#define ExpandEnvironmentStringsA mozce_ExpandEnvironmentStrings +#define ExpandEnvironmentStringsW mozce_ExpandEnvironmentStringsW #ifdef FIXED #undef FIXED @@ -464,22 +459,6 @@ #endif #define GLYPHMETRICS mozce_GLYPHMETRICS -#ifdef GetCurrentProcess -#undef GetCurrentProcess -#endif -#define GetCurrentProcess mozce_GetCurrentProcess - -#ifdef GetCurrentProcessId -#undef GetCurrentProcessId -#endif -#define GetCurrentProcessId mozce_GetCurrentProcessId - -#ifdef GetCurrentThreadId -#undef GetCurrentThreadId -#endif -#define GetCurrentThreadId mozce_GetCurrentThreadId - - #ifdef GetDIBits #undef GetDIBits #endif @@ -510,6 +489,11 @@ #endif #define GetMapMode mozce_GetMapMode +#ifdef GetMessageA +#undef GetMessageA +#endif +#define GetMessageA GetMessageW + #ifdef GetMessageTime #undef GetMessageTime #endif @@ -555,6 +539,12 @@ #endif #define GetUserName mozce_GetUserName + +#ifdef GetWindowPlacement +#undef GetWindowPlacement +#endif +#define GetWindowPlacement mozce_GetWindowPlacement + #ifdef InvertRgn #undef InvertRgn #endif @@ -565,11 +555,6 @@ #endif #define IsIconic mozce_IsIconic -#ifdef LINEDDAPROC -#undef LINEDDAPROC -#endif -#define LINEDDAPROC mozce_LINEDDAPROC - #ifdef LPtoDP #undef LPtoDP #endif @@ -590,11 +575,6 @@ #endif #define MAT2 mozce_MAT2 -#ifdef MsgWaitForMultipleObjects -#undef MsgWaitForMultipleObjects -#endif -#define MsgWaitForMultipleObjects mozce_MsgWaitForMultipleObjects - #ifdef MulDiv #undef MulDiv #endif @@ -615,6 +595,12 @@ #endif #define Pie mozce_Pie +#ifdef PeekMessageA +#undef PeekMessageA +#endif +#define PeekMessageA PeekMessageW + + #ifdef RegCreateKey #undef RegCreateKey #endif @@ -655,15 +641,10 @@ #endif #define SetWindowTextA mozce_SetWindowTextA -#ifdef TlsAlloc -#undef TlsAlloc +#ifdef ShellExecute +#undef ShellExecute #endif -#define TlsAlloc mozce_TlsAlloc - -#ifdef TlsFree -#undef TlsFree -#endif -#define TlsFree mozce_TlsFree +#define ShellExecute mozce_ShellExecute #ifdef UnhookWindowsHookEx #undef UnhookWindowsHookEx @@ -685,6 +666,21 @@ #endif #define IsClipboardFormatAvailable mozce_IsClipboardFormatAvailable +#ifdef CoInitialize +#undef CoInitialize +#endif +#define CoInitialize mozce_CoInitialize + +#ifdef OleInitialize +#undef OleInitialize +#endif +#define OleInitialize mozce_OleInitialize + +#ifdef OleUninitialize +#undef OleUninitialize +#endif +#define OleUninitialize mozce_OleUninitialize + #ifdef OleFlushClipboard #undef OleFlushClipboard #endif @@ -705,6 +701,10 @@ #endif #define OleSetClipboard mozce_OleSetClipboard +#ifdef AlphaBlend +#undef AlphaBlend +#endif +#define AlphaBlend mozce_AlphaBlend // From win32a.cpp @@ -956,6 +956,11 @@ #endif #define GlobalAddAtomA mozce_GlobalAddAtomA +#ifdef LoadBitmapA +#undef LoadBitmapA +#endif +#define LoadBitmapA mozce_LoadBitmapA + #ifdef LoadCursorA #undef LoadCursorA #endif @@ -1006,11 +1011,6 @@ #endif #define OutputDebugStringA mozce_OutputDebugStringA -#ifdef PeekMessageA -#undef PeekMessageA -#endif -#define PeekMessageA mozce_PeekMessageA - #ifdef PostMessageA #undef PostMessageA #endif @@ -1132,11 +1132,6 @@ #endif #define SystemParametersInfoA SystemParametersInfoW -#ifdef GetMessageA -#undef GetMessageA -#endif -#define GetMessageA GetMessageW - #ifdef DispatchMessageA #undef DispatchMessageA #endif @@ -1172,6 +1167,7 @@ #define FindNextFile FindNextFileW +#if 1 #ifdef GetProp #undef GetProp @@ -1188,6 +1184,7 @@ #endif #define RemoveProp mozce_RemovePropA +#endif // From win32w.cpp @@ -1226,6 +1223,7 @@ #endif #define SetCurrentDirectoryW mozce_SetCurrentDirectoryW +#endif // MOZCE_SHUNT_EXPORTS ////////////////////////////////////////////////////////// // Function Declarations @@ -1268,7 +1266,7 @@ extern "C" { MOZCE_SHUNT_API _sigsig mozce_signal(int inSignal, _sigsig inFunc); // From stat.cpp - MOZCE_SHUNT_API int mozce_stat(const char *, struct _stat *); + MOZCE_SHUNT_API int mozce_stat(const char *inPath, struct mozce_stat * outStat); // From stdio.cpp MOZCE_SHUNT_API int mozce_access(const char *path, int mode); @@ -1307,22 +1305,37 @@ extern "C" { MOZCE_SHUNT_API struct tm* mozce_gmtime(const time_t* inTimeT); MOZCE_SHUNT_API time_t mozce_mktime(struct tm* inTM); MOZCE_SHUNT_API size_t mozce_strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr); - - MOZCE_SHUNT_API struct lconv * mozce_localeconv(void); // from win32.cpp + MOZCE_SHUNT_API BOOL mozce_AlphaBlend( HDC hdcDest, + int nXOriginDest, + int nYOriginDest, + int nWidthDest, + int nHeightDest, + HDC hdcSrc, + int nXOriginSrc, + int nYOriginSrc, + int nWidthSrc, + int nHeightSrc, + BLENDFUNCTION blendFunction); + + + MOZCE_SHUNT_API struct lconv * mozce_localeconv(void); + VOID CALLBACK mozce_LineDDAProc(int X, int Y, LPARAM lpData); typedef void (*mozce_LINEDDAPROC) (int X, int Y, LPARAM lpData); MOZCE_SHUNT_API int mozce_MulDiv(int inNumber, int inNumerator, int inDenominator); MOZCE_SHUNT_API int mozce_GetDIBits(HDC inDC, HBITMAP inBMP, UINT inStartScan, UINT inScanLines, LPVOID inBits, LPBITMAPINFO inInfo, UINT inUsage); MOZCE_SHUNT_API int mozce_SetDIBits(HDC inDC, HBITMAP inBMP, UINT inStartScan, UINT inScanLines, CONST LPVOID inBits, CONST LPBITMAPINFO inInfo, UINT inUsage); + MOZCE_SHUNT_API DWORD mozce_CommDlgExtendedError(void); MOZCE_SHUNT_API HBITMAP mozce_CreateDIBitmap(HDC inDC, CONST BITMAPINFOHEADER *inBMIH, DWORD inInit, CONST VOID *inBInit, CONST BITMAPINFO *inBMI, UINT inUsage); MOZCE_SHUNT_API int mozce_SetPolyFillMode(HDC inDC, int inPolyFillMode); MOZCE_SHUNT_API int mozce_SetStretchBltMode(HDC inDC, int inStretchMode); MOZCE_SHUNT_API int mozce_ExtSelectClipRgn(HDC inDC, HRGN inRGN, int inMode); MOZCE_SHUNT_API DWORD mozce_ExpandEnvironmentStrings(LPCTSTR lpSrc, LPTSTR lpDst, DWORD nSize); + MOZCE_SHUNT_API DWORD mozce_ExpandEnvironmentStringsW(const unsigned short * lpSrc, const unsigned short * lpDst, DWORD nSize); MOZCE_SHUNT_API BOOL mozce_LineDDA(int inXStart, int inYStart, int inXEnd, int inYEnd, mozce_LINEDDAPROC inLineFunc, LPARAM inData); MOZCE_SHUNT_API int mozce_FrameRect(HDC inDC, CONST RECT *inRect, HBRUSH inBrush); @@ -1334,7 +1347,7 @@ extern "C" { MOZCE_SHUNT_API UINT mozce_GetTextCharset(HDC inDC); MOZCE_SHUNT_API UINT mozce_GetTextCharsetInfo(HDC inDC, LPFONTSIGNATURE outSig, DWORD inFlags); MOZCE_SHUNT_API UINT mozce_GetOutlineTextMetrics(HDC inDC, UINT inData, void* outOTM); - MOZCE_SHUNT_API int mozce_EnumFontFamiliesEx(HDC inDC, LPLOGFONT inLogfont, FONTENUMPROC inFunc, LPARAM inParam, DWORD inFlags); + MOZCE_SHUNT_API int mozce_EnumFontFamiliesEx(HDC inDC, const LOGFONTA* inLogfont, FONTENUMPROC inFunc, LPARAM inParam, DWORD inFlags); MOZCE_SHUNT_API int mozce_GetMapMode(HDC inDC); MOZCE_SHUNT_API BOOL mozce_GetIconInfo(HICON inIcon, PICONINFO outIconinfo); MOZCE_SHUNT_API BOOL mozce_LPtoDP(HDC inDC, LPPOINT inoutPoints, int inCount); @@ -1346,12 +1359,18 @@ extern "C" { MOZCE_SHUNT_API BOOL mozce_IsIconic(HWND inWnd); MOZCE_SHUNT_API BOOL mozce_OpenIcon(HWND inWnd); MOZCE_SHUNT_API HHOOK mozce_SetWindowsHookEx(int inType, void* inFunc, HINSTANCE inMod, DWORD inThreadId); + MOZCE_SHUNT_API HINSTANCE mozce_ShellExecute(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd); MOZCE_SHUNT_API BOOL mozce_UnhookWindowsHookEx(HHOOK inHook); MOZCE_SHUNT_API LRESULT mozce_CallNextHookEx(HHOOK inHook, int inCode, WPARAM wParam, LPARAM lParam); + + MOZCE_SHUNT_API BOOL mozce_GetWindowPlacement(HWND window, WINDOWPLACEMENT *lpwndpl); MOZCE_SHUNT_API BOOL mozce_InvertRgn(HDC inDC, HRGN inRGN); MOZCE_SHUNT_API int mozce_GetScrollPos(HWND inWnd, int inBar); MOZCE_SHUNT_API BOOL mozce_GetScrollRange(HWND inWnd, int inBar, LPINT outMinPos, LPINT outMaxPos); MOZCE_SHUNT_API HRESULT mozce_CoLockObjectExternal(IUnknown* inUnk, BOOL inLock, BOOL inLastUnlockReleases); + MOZCE_SHUNT_API HRESULT mozce_CoInitialize(LPVOID pvReserved); + MOZCE_SHUNT_API LRESULT mozce_OleInitialize(LPVOID pvReserved); + MOZCE_SHUNT_API void mozce_OleUninitialize();; MOZCE_SHUNT_API HRESULT mozce_OleSetClipboard(IDataObject* inDataObj); MOZCE_SHUNT_API HRESULT mozce_OleGetClipboard(IDataObject** outDataObj); MOZCE_SHUNT_API HRESULT mozce_OleFlushClipboard(void); @@ -1366,22 +1385,18 @@ extern "C" { MOZCE_SHUNT_API HMENU mozce_LoadMenuA(HINSTANCE hInstance, LPCSTR lpMenuName); MOZCE_SHUNT_API void mozce_GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime); - MOZCE_SHUNT_API DWORD mozce_GetFullPathName(LPCTSTR lpFileName, DWORD nBufferLength, LPTSTR lpBuffer, LPTSTR* lpFilePart); + MOZCE_SHUNT_API DWORD mozce_GetFullPathName(const char* lpFileName, DWORD nBufferLength, const char* lpBuffer, const char** lpFilePart); MOZCE_SHUNT_API UINT mozce_GetACP(void); - MOZCE_SHUNT_API HANDLE mozce_GetCurrentProcess(void); - MOZCE_SHUNT_API HANDLE mozce_GetCurrentProcessId(void); - MOZCE_SHUNT_API DWORD mozce_TlsAlloc(void); - MOZCE_SHUNT_API BOOL mozce_TlsFree(DWORD dwTlsIndex); - MOZCE_SHUNT_API DWORD GetCurrentThreadId(void); - - MOZCE_SHUNT_API DWORD mozce_MsgWaitForMultipleObjects(DWORD nCount, const HANDLE* pHandles, BOOL bWaitAll, DWORD dwMilliseconds, DWORD dwWakeMask); + MOZCE_SHUNT_API BOOL mozce_PeekMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg); + MOZCE_SHUNT_API BOOL mozce_GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax); MOZCE_SHUNT_API LONG mozce_GetMessageTime(void); - + // from win32a.cpp MOZCE_SHUNT_API DWORD mozce_GetGlyphOutlineA(HDC inDC, CHAR inChar, UINT inFormat, void* inGM, DWORD inBufferSize, LPVOID outBuffer, CONST mozce_MAT2* inMAT2); + MOZCE_SHUNT_API ATOM mozce_GlobalAddAtomA(LPCSTR lpString); MOZCE_SHUNT_API ATOM mozce_RegisterClassA(CONST WNDCLASSA *lpwc); MOZCE_SHUNT_API BOOL mozce_CopyFileA(LPCSTR lpExistingFileName, LPCSTR lpNewFileName, BOOL bFailIfExists); @@ -1389,17 +1404,17 @@ extern "C" { MOZCE_SHUNT_API BOOL mozce_RemoveDirectoryA(LPCSTR lpPathName); MOZCE_SHUNT_API HANDLE mozce_CreateMutexA(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName); MOZCE_SHUNT_API BOOL mozce_CreateProcessA(LPCSTR pszImageName, LPCSTR pszCmdLine, LPSECURITY_ATTRIBUTES psaProcess, LPSECURITY_ATTRIBUTES psaThread, BOOL fInheritHandles, DWORD fdwCreate, LPVOID pvEnvironment, LPSTR pszCurDir, LPSTARTUPINFO psiStartInfo, LPPROCESS_INFORMATION pProcInfo); - MOZCE_SHUNT_API BOOL mozce_ExtTextOutA(HDC inDC, int inX, int inY, UINT inOptions, LPCRECT inRect, LPCSTR inString, UINT inCount, const LPINT inDx); - MOZCE_SHUNT_API BOOL mozce_TextOutA(HDC hdc, int nXStart, int nYStart, LPCSTR lpString, int cbString); + + MOZCE_SHUNT_API BOOL mozce_ExtTextOutA(HDC inDC, int inX, int inY, UINT inOptions, LPCRECT inRect, const char* inString, UINT inCount, const LPINT inDx); + MOZCE_SHUNT_API BOOL mozce_TextOutA(HDC hdc, int nXStart, int nYStart, const char* lpString, int cbString); MOZCE_SHUNT_API BOOL mozce_GetClassInfoA(HINSTANCE hInstance, LPCSTR lpClassName, LPWNDCLASS lpWndClass); MOZCE_SHUNT_API int mozce_GetClassNameA(HWND hWnd, LPTSTR lpClassName, int nMaxCount); MOZCE_SHUNT_API BOOL mozce_GetFileVersionInfoA(LPSTR inFilename, DWORD inHandle, DWORD inLen, LPVOID outData); - MOZCE_SHUNT_API BOOL mozce_GetTextExtentExPointA(HDC inDC, LPCSTR inStr, int inLen, int inMaxExtent, LPINT outFit, LPINT outDx, LPSIZE inSize); + MOZCE_SHUNT_API BOOL mozce_GetTextExtentExPointA(HDC inDC, const char* inStr, int inLen, int inMaxExtent, LPINT outFit, LPINT outDx, LPSIZE inSize); MOZCE_SHUNT_API BOOL mozce_GetVersionExA(LPOSVERSIONINFOA lpv); MOZCE_SHUNT_API BOOL mozce_DeleteFileA(LPCSTR lpFileName); MOZCE_SHUNT_API BOOL mozce_MoveFileA(LPCSTR lpExistingFileName, LPCSTR lpNewFileName); - MOZCE_SHUNT_API BOOL mozce_PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg); MOZCE_SHUNT_API BOOL mozce_SetCurrentDirectoryA(LPCSTR inPathName); MOZCE_SHUNT_API BOOL mozce_VerQueryValueA(const LPVOID inBlock, LPSTR inSubBlock, LPVOID *outBuffer, PUINT outLen); MOZCE_SHUNT_API BOOL mozce_UnregisterClassA(LPCSTR lpClassName, HINSTANCE hInstance); @@ -1423,7 +1438,7 @@ extern "C" { MOZCE_SHUNT_API LONG mozce_RegSetValueExA(HKEY hKey, const char *valname, DWORD dwReserved, DWORD dwType, const BYTE* lpData, DWORD dwSize); MOZCE_SHUNT_API LONG mozce_RegCreateKeyExA(HKEY hKey, const char *subkey, DWORD dwRes, LPSTR lpszClass, DWORD ulOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES sec_att, PHKEY phkResult, DWORD *lpdwDisp); - MOZCE_SHUNT_API LONG mozce_RegDeleteValueA(HKEY hKey, LPCTSTR lpValueName); + MOZCE_SHUNT_API LONG mozce_RegDeleteValueA(HKEY hKey, const char* lpValueName); MOZCE_SHUNT_API LRESULT mozce_DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); MOZCE_SHUNT_API LRESULT mozce_PostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); @@ -1441,6 +1456,7 @@ extern "C" { MOZCE_SHUNT_API HINSTANCE mozce_LoadLibraryA(LPCSTR lpLibFileName); MOZCE_SHUNT_API int mozce_GetObjectA(HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject); MOZCE_SHUNT_API FARPROC mozce_GetProcAddressA(HMODULE hMod, const char *name); + MOZCE_SHUNT_API HBITMAP mozce_LoadBitmapA(HINSTANCE hInstance, LPCSTR lpCursorName); MOZCE_SHUNT_API HCURSOR mozce_LoadCursorA(HINSTANCE hInstance, LPCSTR lpCursorName); MOZCE_SHUNT_API int mozce_StartDocA(HDC hdc, CONST DOCINFO* lpdi); @@ -1459,22 +1475,22 @@ extern "C" { MOZCE_SHUNT_API BOOL mozce_SetDlgItemTextA(HWND hwndDlg, int idControl, LPCSTR lpsz); MOZCE_SHUNT_API HANDLE mozce_CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, const char *lpName); - MOZCE_SHUNT_API HANDLE mozce_GetPropA(HWND hWnd, LPCSTR lpString); - MOZCE_SHUNT_API BOOL mozce_SetPropA(HWND hWnd, LPCSTR lpString, HANDLE hData); - MOZCE_SHUNT_API HANDLE mozce_RemovePropA(HWND hWnd, LPCSTR lpString); + MOZCE_SHUNT_API HANDLE mozce_GetPropA(HWND hWnd, const char* lpString); + MOZCE_SHUNT_API BOOL mozce_SetPropA(HWND hWnd, const char* lpString, HANDLE hData); + MOZCE_SHUNT_API HANDLE mozce_RemovePropA(HWND hWnd, const char* lpString); - MOZCE_SHUNT_API HANDLE mozce_FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData); - MOZCE_SHUNT_API BOOL mozce_FindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATA lpFindFileData); + MOZCE_SHUNT_API HANDLE mozce_FindFirstFileA(const char* lpFileName, LPWIN32_FIND_DATAA lpFindFileData); + MOZCE_SHUNT_API BOOL mozce_FindNextFileA(HANDLE hFindFile, WIN32_FIND_DATAA* lpFindFileData); MOZCE_SHUNT_API HANDLE mozce_CreateFileMappingA(HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCSTR lpName); MOZCE_SHUNT_API DWORD mozce_FormatMessageA(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPSTR lpBuffer, DWORD nSize, va_list* Arguments); MOZCE_SHUNT_API HANDLE mozce_CreateSemaphoreA(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCSTR lpName); - MOZCE_SHUNT_API HFONT mozce_CreateFontIndirectA(CONST LOGFONT* lplf); - MOZCE_SHUNT_API int mozce_EnumFontFamiliesA(HDC hdc, LPCTSTR lpszFamily, FONTENUMPROC lpEnumFontFamProc, LPARAM lParam); - MOZCE_SHUNT_API int mozce_GetTextFaceA(HDC hdc, int nCount, LPTSTR lpFaceName); - MOZCE_SHUNT_API BOOL mozce_GetTextMetricsA(HDC hdc, LPTEXTMETRIC lptm); + MOZCE_SHUNT_API HFONT mozce_CreateFontIndirectA(CONST LOGFONTA* lplf); + MOZCE_SHUNT_API int mozce_EnumFontFamiliesA(HDC hdc, const char* lpszFamily, FONTENUMPROC lpEnumFontFamProc, LPARAM lParam); + MOZCE_SHUNT_API int mozce_GetTextFaceA(HDC hdc, int nCount, const char* lpFaceName); + MOZCE_SHUNT_API BOOL mozce_GetTextMetricsA(HDC hdc, TEXTMETRICA* lptm); MOZCE_SHUNT_API BOOL mozce_SetWindowTextA(HWND hWnd, LPCSTR lpString); @@ -1482,7 +1498,7 @@ extern "C" { // From win32w.cpp MOZCE_SHUNT_API BOOL mozce_SetCurrentDirectoryW(LPCTSTR inPathName); MOZCE_SHUNT_API DWORD mozce_GetCurrentDirectoryW(DWORD inBufferLength, LPTSTR outBuffer); - MOZCE_SHUNT_API DWORD mozce_GetGlyphOutlineW(HDC inDC, WCHAR inChar, UINT inFormat, void* inGM, DWORD inBufferSize, LPVOID outBuffer, CONST void* inMAT2); + MOZCE_SHUNT_API DWORD mozce_GetGlyphOutlineW(HDC inDC, WCHAR inChar, UINT inFormat, void* inGM, DWORD inBufferSize, LPVOID outBuffer, CONST VOID* inMAT2); MOZCE_SHUNT_API HANDLE mozce_OpenSemaphoreW(DWORD inDesiredAccess, BOOL inInheritHandle, LPCWSTR inName); MOZCE_SHUNT_API UINT mozce_GetSystemDirectoryW(LPWSTR inBuffer, UINT inSize); MOZCE_SHUNT_API UINT mozce_GetWindowsDirectoryW(LPWSTR inBuffer, UINT inSize); diff --git a/mozilla/build/wince/shunt/mbstring.cpp b/mozilla/build/wince/shunt/mbstring.cpp index 9b20bec38ac..e348149917b 100755 --- a/mozilla/build/wince/shunt/mbstring.cpp +++ b/mozilla/build/wince/shunt/mbstring.cpp @@ -51,7 +51,7 @@ extern "C" { ** Right now, bail with a default implementation. */ -// #define LOG_CALLS +#define LOG_CALLS MOZCE_SHUNT_API unsigned char* mozce_mbsinc(const unsigned char* inCurrent) { diff --git a/mozilla/build/wince/shunt/mozce_internal.h b/mozilla/build/wince/shunt/mozce_internal.h index da4452ae3f9..49258ad444c 100755 --- a/mozilla/build/wince/shunt/mozce_internal.h +++ b/mozilla/build/wince/shunt/mozce_internal.h @@ -68,7 +68,7 @@ ** included a terminating character for the conversion). */ -int a2w_buffer(LPCSTR inACPString, int inACPChars, LPWSTR outWideString, int inWideChars); +int a2w_buffer(const char* inACPString, int inACPChars, unsigned short* outWideString, int inWideChars); /* ** Perform the requested conversion using heap memory. @@ -94,7 +94,7 @@ int a2w_buffer(LPCSTR inACPString, int inACPChars, LPWSTR outWideString, int inW ** NULL on failure. */ -LPWSTR a2w_malloc(LPCSTR inACPString, int inACPChars, int* outWideChars); +unsigned short* a2w_malloc(const char* inACPString, int inACPChars, int* outWideChars); /* ** Perform the requested conversion using the buffer provided. @@ -116,7 +116,7 @@ LPWSTR a2w_malloc(LPCSTR inACPString, int inACPChars, int* outWideChars); ** should the string be terminated (i.e. if inWideChars ** included a terminating character for the conversion). */ -int w2a_buffer(LPCWSTR inWideString, int inWideChars, LPSTR outACPString, int inACPChars); +int w2a_buffer(const unsigned short* inWideString, int inWideChars, char* outACPString, int inACPChars); /* ** Perform the requested conversion using heap memory. @@ -141,7 +141,7 @@ int w2a_buffer(LPCWSTR inWideString, int inWideChars, LPSTR outACPString, int in ** NULL on failure. */ -LPSTR w2a_malloc(LPCWSTR inWideString, int inWideChars, int* outACPChars); +char* w2a_malloc(unsigned short* inWideString, int inWideChars, int* outACPChars); void dumpMemoryInfo(); @@ -154,13 +154,13 @@ void dumpMemoryInfo(); extern "C" { #endif - MOZCE_SHUNT_API int mozce_printf(const char *, ...); + MOZCE_SHUNT_API int mozce_printf(const char *, ...); #ifdef __cplusplus }; #endif -void nclog (const char *fmt, ...); +int nclog (const char *fmt, ...); void nclograw(const char* data, long length); //#define MOZCE_PRECHECK \ diff --git a/mozilla/build/wince/shunt/nclog.cpp b/mozilla/build/wince/shunt/nclog.cpp index 3fa355dcda1..ac3f889a198 100755 --- a/mozilla/build/wince/shunt/nclog.cpp +++ b/mozilla/build/wince/shunt/nclog.cpp @@ -44,6 +44,8 @@ #include "mozce_internal.h" +#define USE_NC_LOGGING + #ifdef USE_NC_LOGGING @@ -77,17 +79,33 @@ static bool wsa_init() WSADATA wd; BOOL bc=true; - if (0 != WSAStartup(0x101, &wd)) goto error; + if (0 != WSAStartup(0x101, &wd)) + { + MessageBox(0, L"WSAStartup failed", L"ERROR", 0); + goto error; + } wsa_socket=socket(PF_INET, SOCK_DGRAM, 0); - if (wsa_socket == INVALID_SOCKET) goto error; + if (wsa_socket == INVALID_SOCKET) + { + MessageBox(0, L"socket failed", L"ERROR", 0); + goto error; + } r=setsockopt(wsa_socket, SOL_SOCKET, SO_BROADCAST, (char*)&bc, sizeof(bc)); - if (r!=0) goto error; + if (r!=0) + { + MessageBox(0, L"setsockopt failed", L"ERROR", 0); + goto error; + } + if (wsa_bind(9998)) return true; // bind to default port. - error: + + MessageBox(0, L"Can Not Bind To Port", L"ERROR", 0); + +error: if (wsa_socket != INVALID_SOCKET) closesocket(wsa_socket); return false; - + } // can be called externally to select a different port for operations @@ -104,7 +122,7 @@ static void wsa_send(const char *x) } // format input, convert to 8-bit and send. -void nclog (const char *fmt, ...) +int nclog (const char *fmt, ...) { va_list vl; va_start(vl,fmt); @@ -112,7 +130,7 @@ void nclog (const char *fmt, ...) sprintf(buf,fmt,vl); wsa_init(); wsa_send(buf); - + return 0; } void nclograw(const char* data, long length) diff --git a/mozilla/build/wince/shunt/process.cpp b/mozilla/build/wince/shunt/process.cpp index 883dc596f5e..fe2e1256290 100755 --- a/mozilla/build/wince/shunt/process.cpp +++ b/mozilla/build/wince/shunt/process.cpp @@ -1,5 +1,6 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * + * ***** BEG LICENSE BLOCK ***** * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * @@ -58,7 +59,7 @@ MOZCE_SHUNT_API void mozce_abort(void) #if defined(DEBUG) DebugBreak(); #endif - TerminateProcess(GetCurrentProcess(), 3); + TerminateProcess((HANDLE) GetCurrentProcessId(), 3); } @@ -71,9 +72,8 @@ MOZCE_SHUNT_API char* mozce_getenv(const char* inName) #endif char* retval = NULL; - + #ifdef DEBUG_NSPR_ALL - if (!strcmp(inName, "NSPR_LOG_MODULES")) return "all:5"; @@ -87,7 +87,10 @@ MOZCE_SHUNT_API char* mozce_getenv(const char* inName) if (!strcmp(inName, "NS_TIMELINE_ENABLE")) return "1"; -#endif +#endif + + if (!_stricmp(inName, "tmp")) + return "/Temp"; return retval; } diff --git a/mozilla/build/wince/shunt/stat.cpp b/mozilla/build/wince/shunt/stat.cpp index 5d11a6ed47f..1a399f110c6 100755 --- a/mozilla/build/wince/shunt/stat.cpp +++ b/mozilla/build/wince/shunt/stat.cpp @@ -48,7 +48,7 @@ extern "C" { #endif -MOZCE_SHUNT_API int mozce_stat(const char* inPath, struct stat* outStats) +MOZCE_SHUNT_API int mozce_stat(const char* inPath, struct mozce_stat* outStats) { MOZCE_PRECHECK diff --git a/mozilla/build/wince/shunt/stdio.cpp b/mozilla/build/wince/shunt/stdio.cpp index 6ec1800ce0a..1050fd2e4f0 100755 --- a/mozilla/build/wince/shunt/stdio.cpp +++ b/mozilla/build/wince/shunt/stdio.cpp @@ -128,7 +128,7 @@ MOZCE_SHUNT_API FILE* mozce_fdopen(int fd, const char* inMode) if(fd < 0 || fd >= MAXFDS || _fdtab[fd].fd == -1) - return 0; + return 0; return _fdtab[fd].file; } @@ -180,10 +180,10 @@ MOZCE_SHUNT_API char* mozce_getcwd(char* buff, size_t size) #ifdef DEBUG mozce_printf("mozce_getcwd called.\n"); #endif - + int i; unsigned short dir[MAX_PATH]; GetModuleFileName(GetModuleHandle (NULL), dir, MAX_PATH); - for (int i = _tcslen(dir); i && dir[i] != TEXT('\\'); i--) {} + for (i = _tcslen(dir); i && dir[i] != TEXT('\\'); i--) {} dir[i + 1] = TCHAR('\0'); w2a_buffer(dir, -1, buff, size); @@ -193,6 +193,24 @@ MOZCE_SHUNT_API char* mozce_getcwd(char* buff, size_t size) MOZCE_SHUNT_API int mozce_printf(const char * format, ...) { + //#ifdef DEBUG +#define MAX_CHARS_IN_VARIABLE_STRING 1024 + + char buf[MAX_CHARS_IN_VARIABLE_STRING]; + + TCHAR tBuf[MAX_CHARS_IN_VARIABLE_STRING]; + + va_list ptr; + va_start(ptr,format); + vsprintf(buf,format,ptr); + + mbstowcs(tBuf, buf, MAX_CHARS_IN_VARIABLE_STRING); + + OutputDebugString(tBuf); + + return 1; + //#endif + return 0; } @@ -274,7 +292,7 @@ MOZCE_SHUNT_API int mozce_close(int fd) if(fd < 0 || fd >= MAXFDS || _fdtab[fd].fd == -1) - return -1; + return -1; fclose(_fdtab[fd].file); @@ -292,7 +310,7 @@ MOZCE_SHUNT_API size_t mozce_read(int fd, void* buffer, size_t count) #endif if(fd < 0 || fd >= MAXFDS || _fdtab[fd].fd == -1) - return -1; + return -1; size_t num = fread(buffer, 1, count, _fdtab[fd].file); @@ -312,7 +330,7 @@ MOZCE_SHUNT_API size_t mozce_write(int fd, const void* buffer, size_t count) #endif if(fd < 0 || fd >= MAXFDS || _fdtab[fd].fd == -1) - return -1; + return -1; size_t num = fwrite(buffer, 1, count, _fdtab[fd].file); if (ferror(_fdtab[fd].file)) @@ -343,7 +361,7 @@ MOZCE_SHUNT_API int mozce_lseek(int fd, int offset, int whence) if(fd < 0 || fd >= MAXFDS || _fdtab[fd].fd == -1) - return -1; + return -1; int newpos = -1; int error = fseek(_fdtab[fd].file, offset, whence); @@ -369,9 +387,9 @@ MOZCE_SHUNT_API int mozce_fileno(FILE* f) for(fd = 0; fd < MAXFDS; fd++) { if(_fdtab[fd].file == f) - { + { return _fdtab[fd].fd; - } + } } return (int) fileno(f); diff --git a/mozilla/build/wince/shunt/stdlib.cpp b/mozilla/build/wince/shunt/stdlib.cpp index 602fbdd2064..34655996ab5 100755 --- a/mozilla/build/wince/shunt/stdlib.cpp +++ b/mozilla/build/wince/shunt/stdlib.cpp @@ -41,6 +41,10 @@ #include #include "mozce_internal.h" +#define _MAX_FNAME 256 +#define _MAX_DIR _MAX_FNAME +#define _MAX_EXT _MAX_FNAME + extern "C" { #if 0 @@ -61,9 +65,10 @@ MOZCE_SHUNT_API char *mozce_fullpath(char *absPath, const char *relPath, size_t if (relPath[0] != '\\') { - unsigned short dir[MAX_PATH]; + int i; + unsigned short dir[MAX_PATH]; GetModuleFileName(GetModuleHandle (NULL), dir, MAX_PATH); - for (int i = _tcslen(dir); i && dir[i] != TEXT('\\'); i--) {} + for (i = _tcslen(dir); i && dir[i] != TEXT('\\'); i--) {} dir[i + 1] = TCHAR('\0'); @@ -102,11 +107,11 @@ MOZCE_SHUNT_API void mozce_splitpath(const char* inPath, char* outDrive, char* o if(NULL != inPath && '\0' != *inPath) { - char* dup = (char*) malloc(strlen(inPath)); - if(NULL != dup) + char* dup = (char*) malloc(strlen(inPath)); + if(NULL != dup) { strcpy(dup, inPath); - /* + /* ** Change all forward slashes to back. */ char* convert = dup; diff --git a/mozilla/build/wince/shunt/w2a.cpp b/mozilla/build/wince/shunt/w2a.cpp index 5fb683f9b56..93ad4ff9b45 100755 --- a/mozilla/build/wince/shunt/w2a.cpp +++ b/mozilla/build/wince/shunt/w2a.cpp @@ -40,7 +40,7 @@ #include "mozce_internal.h" -int w2a_buffer(LPCWSTR inWideString, int inWideChars, LPSTR outACPString, int inACPChars) +int w2a_buffer(const unsigned short* inWideString, int inWideChars, char* outACPString, int inACPChars) { int retval = 0; @@ -76,7 +76,7 @@ int w2a_buffer(LPCWSTR inWideString, int inWideChars, LPSTR outACPString, int in } -LPSTR w2a_malloc(LPCWSTR inWideString, int inWideChars, int* outACPChars) +char* w2a_malloc(const unsigned short* inWideString, int inWideChars, int* outACPChars) { LPSTR retval = NULL; diff --git a/mozilla/build/wince/shunt/win32.cpp b/mozilla/build/wince/shunt/win32.cpp index 90b6d250849..39fcc59f4f9 100755 --- a/mozilla/build/wince/shunt/win32.cpp +++ b/mozilla/build/wince/shunt/win32.cpp @@ -52,6 +52,19 @@ extern "C" { #define wcharcount(array) (sizeof(array) / sizeof(TCHAR)) + +MOZCE_SHUNT_API DWORD mozce_CommDlgExtendedError() +{ + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("mozce_CommDlgExtendedError called\n"); +#endif + + return -1 /*CDERR_DIALOGFAILURE*/; +} + + MOZCE_SHUNT_API int mozce_MulDiv(int inNumber, int inNumerator, int inDenominator) { MOZCE_PRECHECK @@ -160,6 +173,12 @@ MOZCE_SHUNT_API int mozce_ExtSelectClipRgn(HDC inDC, HRGN inRGN, int inMode) // RGN_DIFF = 4 // RGN_COPY = 5 + + if (inMode == RGN_COPY) + { + return SelectClipRgn(inDC, inRGN); + } + HRGN cRGN = NULL; int result = GetClipRgn(inDC, cRGN); @@ -407,7 +426,7 @@ static int CALLBACK collectProc(CONST LOGFONT* inLF, CONST TEXTMETRIC* inTM, DWO return retval; } -MOZCE_SHUNT_API int mozce_EnumFontFamiliesEx(HDC inDC, LPLOGFONT inLogfont, FONTENUMPROC inFunc, LPARAM inParam, DWORD inFlags) +MOZCE_SHUNT_API int mozce_EnumFontFamiliesEx(HDC inDC, const LOGFONTA* inLogfont, FONTENUMPROC inFunc, LPARAM inParam, DWORD inFlags) { MOZCE_PRECHECK @@ -759,6 +778,40 @@ MOZCE_SHUNT_API HRESULT mozce_CoLockObjectExternal(IUnknown* inUnk, BOOL inLock, return retval; } + +MOZCE_SHUNT_API HRESULT mozce_CoInitialize(LPVOID pvReserved) +{ + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("-- mozce_Conitialize called\n"); +#endif + + CoInitializeEx(NULL, COINIT_MULTITHREADED); + return S_OK; + +} + +MOZCE_SHUNT_API LRESULT mozce_OleInitialize(LPVOID pvReserved) +{ + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("-- mozce_OleInitialize called\n"); +#endif + + return S_OK; +} + +MOZCE_SHUNT_API void mozce_OleUninitialize() +{ + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("-- mozce_OleUninitialize called\n"); +#endif +} + MOZCE_SHUNT_API HRESULT mozce_OleQueryLinkFromData(IDataObject* inSrcDataObject) { MOZCE_PRECHECK @@ -817,19 +870,17 @@ MOZCE_SHUNT_API BOOL mozce_GetUserName(LPTSTR inBuffer, LPDWORD inoutSize) } -MOZCE_SHUNT_API DWORD mozce_GetShortPathName(LPCTSTR inLongPath, LPTSTR outShortPath, DWORD inBufferSize) +MOZCE_SHUNT_API DWORD mozce_GetShortPathName(LPCSTR inLongPath, LPSTR outShortPath, DWORD inBufferSize) { MOZCE_PRECHECK - + #ifdef DEBUG - mozce_printf("-- mozce_GetShortPathName called\n"); + mozce_printf("mozce_GetShortPathName called\n"); #endif - - DWORD retval = 0; - - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - - return retval; + + DWORD retval = strlen(inLongPath); + strncpy(outShortPath, inLongPath, inBufferSize); + return ((retval > inBufferSize) ? inBufferSize : retval); } MOZCE_SHUNT_API DWORD mozce_GetEnvironmentVariable(LPCSTR lpName, LPCSTR lpBuffer, DWORD nSize) @@ -860,97 +911,19 @@ MOZCE_SHUNT_API void mozce_GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFile SystemTimeToFileTime(&st,lpSystemTimeAsFileTime); } -struct lconv s_locale_conv = -{ - ".", /* decimal_point */ - ",", /* thousands_sep */ - "333", /* grouping */ - "$", /* int_curr_symbol */ - "$", /* currency_symbol */ - "", /* mon_decimal_point */ - "", /* mon_thousands_sep */ - "", /* mon_grouping */ - "+", /* positive_sign */ - "-", /* negative_sign */ - '2', /* int_frac_digits */ - '2', /* frac_digits */ - 1, /* p_cs_precedes */ - 1, /* p_sep_by_space */ - 1, /* n_cs_precedes */ - 1, /* n_sep_by_space */ - 1, /* p_sign_posn */ - 1, /* n_sign_posn */ -}; - -MOZCE_SHUNT_API struct lconv * mozce_localeconv(void) -{ - MOZCE_PRECHECK - -#ifdef DEBUG - mozce_printf("mozce_localeconv called\n"); -#endif - return &s_locale_conv; -} - -MOZCE_SHUNT_API DWORD mozce_GetCurrentThreadId(void) -{ - MOZCE_PRECHECK - -#ifdef DEBUG - mozce_printf("mozce_GetCurrentThreadId called\n"); -#endif - return GetCurrentThreadId(); -} - - -MOZCE_SHUNT_API DWORD mozce_GetCurrentProcessId(void) -{ - MOZCE_PRECHECK - -#ifdef DEBUG - mozce_printf("mozce_GetCurrentProcessId called\n"); -#endif - return GetCurrentProcessId(); -} - -MOZCE_SHUNT_API DWORD mozce_TlsAlloc(void) -{ - MOZCE_PRECHECK - -#ifdef DEBUG - mozce_printf("mozce_TlsAlloc called\n"); -#endif - return TlsAlloc(); -} - -MOZCE_SHUNT_API BOOL mozce_TlsFree(DWORD dwTlsIndex) -{ - MOZCE_PRECHECK - -#ifdef DEBUG - mozce_printf("mozce_TlsFree called\n"); -#endif - return TlsFree(dwTlsIndex); -} - -MOZCE_SHUNT_API HANDLE mozce_GetCurrentProcess(void) -{ - MOZCE_PRECHECK - -#ifdef DEBUG - mozce_printf("mozce_GetCurrentProcess called\n"); -#endif - return GetCurrentProcess(); -} - #ifndef MIN #define MIN(a,b) (((a)<(b)) ? (a) : (b)) #endif -MOZCE_SHUNT_API DWORD mozce_GetFullPathName(LPCSTR lpFileName, + +#ifndef MAX +#define MAX(a,b) (((a)>(b)) ? (a) : (b)) +#endif + +MOZCE_SHUNT_API DWORD mozce_GetFullPathName(const char* lpFileName, DWORD nBufferLength, - LPCSTR lpBuffer, - LPCSTR* lpFilePart) + const char* lpBuffer, + const char** lpFilePart) { #ifdef DEBUG mozce_printf("mozce_GetFullPathName called\n"); @@ -980,17 +953,44 @@ MOZCE_SHUNT_API DWORD mozce_GetFullPathName(LPCSTR lpFileName, return len; } -MOZCE_SHUNT_API DWORD mozce_MsgWaitForMultipleObjects(DWORD nCount, const HANDLE* pHandles, BOOL bWaitAll, DWORD dwMilliseconds, DWORD dwWakeMask) +static LONG gGetMessageTime = 0; + +MOZCE_SHUNT_API BOOL mozce_GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax ) { MOZCE_PRECHECK #ifdef DEBUG - mozce_printf("mozce_MsgWaitForMultipleObjects called\n"); + mozce_printf("mozce_GetMessage called\n"); #endif - return MsgWaitForMultipleObjects(nCount, (HANDLE*) pHandles, bWaitAll, dwMilliseconds, dwWakeMask); + BOOL b = GetMessage(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMin); + + if (b) + gGetMessageTime = lpMsg->time; + + return b; } + +MOZCE_SHUNT_API BOOL mozce_PeekMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg) +{ + MOZCE_PRECHECK + +#ifdef LOUD_PEEKMESSAGE +#ifdef DEBUG + mozce_printf("mozce_PeekMessageA called\n"); +#endif +#endif + + BOOL b = PeekMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg); + + if (b && wRemoveMsg == PM_REMOVE) + gGetMessageTime = lpMsg->time; + + return b; +} + + MOZCE_SHUNT_API LONG mozce_GetMessageTime(void) { MOZCE_PRECHECK @@ -998,8 +998,8 @@ MOZCE_SHUNT_API LONG mozce_GetMessageTime(void) #ifdef DEBUG mozce_printf("mozce_GetMessageTime called\n"); #endif - // Close enough guess? - return GetTickCount(); + + return gGetMessageTime; } MOZCE_SHUNT_API UINT mozce_GetACP(void) @@ -1026,6 +1026,17 @@ MOZCE_SHUNT_API DWORD mozce_ExpandEnvironmentStrings(LPCTSTR lpSrc, LPTSTR lpDst return 0; } +MOZCE_SHUNT_API DWORD mozce_ExpandEnvironmentStringsW(const unsigned short* lpSrc, const unsigned short* lpDst, DWORD nSize) +{ + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("mozce_ExpandEnvironmentStrings called\n"); +#endif + + return 0; +} + MOZCE_SHUNT_API BOOL mozce_GdiFlush(void) { MOZCE_PRECHECK @@ -1033,6 +1044,163 @@ MOZCE_SHUNT_API BOOL mozce_GdiFlush(void) return TRUE; } +MOZCE_SHUNT_API BOOL mozce_GetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl) +{ + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("mozce_GetWindowPlacement called\n"); +#endif + + memset(lpwndpl, 0, sizeof(WINDOWPLACEMENT)); + + // This is wrong when the window is minimized. + lpwndpl->showCmd = SW_SHOWNORMAL; + GetWindowRect(hWnd, &lpwndpl->rcNormalPosition); + + return TRUE; +} + +MOZCE_SHUNT_API HINSTANCE mozce_ShellExecute(HWND hwnd, + LPCSTR lpOperation, + LPCSTR lpFile, + LPCSTR lpParameters, + LPCSTR lpDirectory, + INT nShowCmd) +{ + + LPTSTR op = a2w_malloc(lpOperation, -1, NULL); + LPTSTR file = a2w_malloc(lpFile, -1, NULL); + LPTSTR parm = a2w_malloc(lpParameters, -1, NULL); + LPTSTR dir = a2w_malloc(lpDirectory, -1, NULL); + + SHELLEXECUTEINFO info; + info.cbSize = sizeof(SHELLEXECUTEINFO); + info.fMask = SEE_MASK_NOCLOSEPROCESS; + info.hwnd = hwnd; + info.lpVerb = op; + info.lpFile = file; + info.lpParameters = parm; + info.lpDirectory = dir; + info.nShow = nShowCmd; + + BOOL b = ShellExecuteEx(&info); + + if (op) + free(op); + if (file) + free(file); + if (parm) + free(parm); + if (dir) + free(dir); + + return (HINSTANCE) info.hProcess; +} + +struct lconv s_locale_conv = +{ + ".", /* decimal_point */ + ",", /* thousands_sep */ + "333", /* grouping */ + "$", /* int_curr_symbol */ + "$", /* currency_symbol */ + "", /* mon_decimal_point */ + "", /* mon_thousands_sep */ + "", /* mon_grouping */ + "+", /* positive_sign */ + "-", /* negative_sign */ + '2', /* int_frac_digits */ + '2', /* frac_digits */ + 1, /* p_cs_precedes */ + 1, /* p_sep_by_space */ + 1, /* n_cs_precedes */ + 1, /* n_sep_by_space */ + 1, /* p_sign_posn */ + 1, /* n_sign_posn */ +}; + + + +MOZCE_SHUNT_API struct lconv * mozce_localeconv(void) +{ + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("mozce_localeconv called\n"); +#endif + return &s_locale_conv; +} + +MOZCE_SHUNT_API BOOL mozce_AlphaBlend( + HDC hdcDest, // handle to destination DC + int nXOriginDest, // x-coord of upper-left corner + int nYOriginDest, // y-coord of upper-left corner + int nWidthDest, // destination width + int nHeightDest, // destination height + HDC hdcSrc, // handle to source DC + int nXOriginSrc, // x-coord of upper-left corner + int nYOriginSrc, // y-coord of upper-left corner + int nWidthSrc, // source width + int nHeightSrc, // source height + BLENDFUNCTION blendFunction // alpha-blending function + ){ + DWORD SCA = blendFunction.SourceConstantAlpha; + int w = MIN(nWidthSrc,nWidthDest); + int h = MIN(nHeightSrc, nHeightDest); + for ( int x = 0; x<= w; x++){ + for( int y = 0; y<=h; y++){ + COLORREF dc = GetPixel(hdcDest, nXOriginDest+x, nYOriginDest+y); + COLORREF sc = GetPixel(hdcSrc, nXOriginSrc+x, nYOriginSrc+y); + color Src,Dst; + Src.Red = GetRValue(sc); + Dst.Red = GetRValue(dc); + Src.Green = GetGValue(sc); + Dst.Green = GetGValue(dc); + Src.Blue = GetBValue(sc); + Dst.Blue = GetBValue(dc); + + Src.Alpha = 1.0 - (double)((sc >> 24)/255.0); + Dst.Alpha = 1.0 - (double)((dc >> 24)/255.0); + + //Src.Alpha = 1.0;//(double)((sc >> 24)/255.0); + //Dst.Alpha = 1.0;//(double)((dc >> 24)/255.0); + + + if(blendFunction.AlphaFormat & AC_SRC_ALPHA){ + Dst.Red = (unsigned char)(Src.Red * (SCA/255.0) + Dst.Red * (1.0 - (SCA/255.0))); + Dst.Green = (unsigned char)(Src.Green * (SCA/255.0) + Dst.Green * (1.0 - (SCA/255.0))); + Dst.Blue = (unsigned char)(Src.Blue * (SCA/255.0) + Dst.Blue * (1.0 - (SCA/255.0))); + Dst.Alpha = MAX(0,MIN(1,Src.Alpha * (SCA/255.0) + Dst.Alpha * (1.0 - (SCA/255.0)))); + }else if(SCA == 0xff){ + Dst.Red = (unsigned char)(Src.Alpha*Src.Red + (1 - Src.Alpha) * Dst.Red); + Dst.Green = (unsigned char)(Src.Alpha*Src.Green + (1 - Src.Alpha) * Dst.Green); + Dst.Blue = (unsigned char)(Src.Alpha*Src.Blue + (1 - Src.Alpha) * Dst.Blue); + Dst.Alpha = MAX(0,MIN(1,Src.Alpha + (1 - Src.Alpha) * Dst.Alpha)); + }else{ + Src.Red = (unsigned char)(Src.Red * SCA / 255.0); + Src.Green = (unsigned char)(Src.Green * SCA / 255.0); + Src.Blue = (unsigned char)(Src.Blue * SCA / 255.0); + Src.Alpha = MAX(0,MIN(1,Src.Alpha * SCA / 255.0)); + double t = (Src.Red + (1 - Src.Alpha) * Dst.Red); + Dst.Red = (unsigned char)(t>255?255:t); + t = (Src.Green + (1 - Src.Alpha) * Dst.Green); + Dst.Green = (unsigned char)(t>255?255:t); + t = (Src.Blue + (1 - Src.Alpha) * Dst.Blue); + Dst.Blue = (unsigned char)(t>255?255:t); + Dst.Alpha = MAX(0,MIN(1,Src.Alpha + (1 - Src.Alpha) * Dst.Alpha)); + } + SetPixel(hdcDest,nXOriginDest+x, nYOriginDest+y, RGB(Dst.Red,Dst.Green,Dst.Blue)); + + //(((unsigned char)(Dst.Alpha*255) & 0xff) << 24)| + } + } + + + return true; + +} + #if 0 { #endif @@ -1042,10 +1210,10 @@ void dumpMemoryInfo() { MEMORYSTATUS ms; ms.dwLength = sizeof(MEMORYSTATUS); - - + + GlobalMemoryStatus(&ms); - + wprintf(L"-> %d %d %d %d %d %d %d\n", ms.dwMemoryLoad, ms.dwTotalPhys, diff --git a/mozilla/build/wince/shunt/win32A.cpp b/mozilla/build/wince/shunt/win32A.cpp index 2360f8cb50f..a00df8b3ae9 100755 --- a/mozilla/build/wince/shunt/win32A.cpp +++ b/mozilla/build/wince/shunt/win32A.cpp @@ -237,24 +237,16 @@ MOZCE_SHUNT_API BOOL mozce_CreateProcessA(LPCSTR pszImageName, LPCSTR pszCmdLine mozce_printf("mozce_CreateProcessA called\n"); #endif - BOOL retval = FALSE; - TCHAR pszImageNameW[MAX_PATH]; + LPTSTR image = a2w_malloc(pszImageName, -1, NULL); + LPTSTR cmdline = a2w_malloc(pszCmdLine, -1, NULL); - if(a2w_buffer(pszImageName, -1, pszImageNameW, MAX_PATH)) - { - LPTSTR pszCmdLineW = NULL; + BOOL retval = CreateProcessW(image, cmdline, NULL, NULL, FALSE, fdwCreate, NULL, NULL, NULL, pProcInfo); - pszCmdLineW = a2w_malloc(pszCmdLine, -1, NULL); - if(NULL != pszCmdLineW || NULL == pszCmdLine) - { - retval = CreateProcessW(pszImageNameW, pszCmdLineW, NULL, NULL, FALSE, fdwCreate, NULL, NULL, NULL, pProcInfo); - - if(NULL != pszCmdLineW) - { - free(pszCmdLineW); - } - } - } + if (image) + free(image); + + if (cmdline) + free(cmdline); return retval; } @@ -423,7 +415,7 @@ MOZCE_SHUNT_API LONG mozce_RegQueryValueExA(HKEY inKey, LPCSTR inValueName, LPDW -MOZCE_SHUNT_API LONG mozce_RegSetValueExA(HKEY hKey, const char *valname, DWORD dwReserved, DWORD dwType, LPBYTE lpData, DWORD dwSize) +MOZCE_SHUNT_API LONG mozce_RegSetValueExA(HKEY hKey, const char *valname, DWORD dwReserved, DWORD dwType, const BYTE* lpData, DWORD dwSize) { MOZCE_PRECHECK @@ -431,10 +423,10 @@ MOZCE_SHUNT_API LONG mozce_RegSetValueExA(HKEY hKey, const char *valname, DWORD mozce_printf("mozce_RegSetValueExA called\n"); #endif - wchar_t valnamew[256]; + unsigned short valnamew[256]; LONG res; - LPBYTE lpDataNew = lpData; + LPBYTE lpDataNew = (LPBYTE) lpData; DWORD dwDataSize = dwSize; MultiByteToWideChar(CP_ACP, 0, valname, -1, valnamew, charcount(valnamew)); @@ -444,7 +436,7 @@ MOZCE_SHUNT_API LONG mozce_RegSetValueExA(HKEY hKey, const char *valname, DWORD dwDataSize = dwSize * 2; lpDataNew = (LPBYTE) malloc(dwDataSize); - MultiByteToWideChar(CP_ACP, 0, (const char*) lpData, -1, (wchar_t *)lpDataNew, dwDataSize); + MultiByteToWideChar(CP_ACP, 0, (const char*) lpData, -1, (unsigned short *)lpDataNew, dwDataSize); } res = RegSetValueExW(hKey, valnamew, dwReserved, dwType, lpDataNew, dwDataSize); @@ -472,7 +464,7 @@ MOZCE_SHUNT_API LONG mozce_RegCreateKeyExA(HKEY hKey, const char *subkey, DWORD } -MOZCE_SHUNT_API LONG mozce_RegDeleteValueA(HKEY hKey, LPCSTR lpValueName) +MOZCE_SHUNT_API LONG mozce_RegDeleteValueA(HKEY hKey, const char* lpValueName) { MOZCE_PRECHECK @@ -640,7 +632,7 @@ MOZCE_SHUNT_API HDC mozce_CreateDCA2(LPCSTR inDriver, LPCSTR inDevice, LPCSTR in return retval; } -MOZCE_SHUNT_API BOOL mozce_GetTextExtentExPointA(HDC inDC, char* inStr, int inLen, int inMaxExtent, LPINT outFit, LPINT outDx, LPSIZE inSize) +MOZCE_SHUNT_API BOOL mozce_GetTextExtentExPointA(HDC inDC, const char * inStr, int inLen, int inMaxExtent, LPINT outFit, LPINT outDx, LPSIZE inSize) { MOZCE_PRECHECK @@ -650,13 +642,9 @@ MOZCE_SHUNT_API BOOL mozce_GetTextExtentExPointA(HDC inDC, char* inStr, int inLe BOOL retval = FALSE; - if (!inStr) - return retval; - - inStr[inLen] = '\0'; - - LPTSTR wStr = a2w_malloc(inStr, inLen, NULL); - + // BUG: if inString has any embedded nulls, this function will not produce the desired effect! + LPTSTR wStr = a2w_malloc(inStr, inLen, NULL); + if(NULL != wStr) { retval = GetTextExtentExPointW(inDC, wStr, inLen, inMaxExtent, outFit, outDx, inSize); @@ -666,36 +654,43 @@ MOZCE_SHUNT_API BOOL mozce_GetTextExtentExPointA(HDC inDC, char* inStr, int inLe return retval; } -MOZCE_SHUNT_API BOOL mozce_ExtTextOutA(HDC inDC, int inX, int inY, UINT inOptions, const LPRECT inRect, LPCSTR inString, UINT inCount, const LPINT inDx) +MOZCE_SHUNT_API BOOL mozce_ExtTextOutA(HDC inDC, int inX, int inY, UINT inOptions, LPCRECT inRect, const char* inString, UINT inCount, const LPINT inDx) { MOZCE_PRECHECK #ifdef DEBUG - mozce_printf("mozce_ExtTextOutA called\n"); + mozce_printf("mozce_ExtTextOutA (%s) called\n", inString); #endif - + BOOL retval = false; if (inCount == -1) - inCount = strlen(inString); - + inCount = strlen(inString); + int wLen = 0; LPTSTR wStr = a2w_malloc(inString, inCount, &wLen); - + if(NULL != wStr) - { + { retval = ExtTextOutW(inDC, inX, inY, inOptions, inRect, wStr, wLen, inDx); + free(wStr); wStr = NULL; } - + return retval; } -MOZCE_SHUNT_API BOOL mozce_TextOutA(HDC hdc, int nXStart, int nYStart, LPCSTR lpString, int cbString) +MOZCE_SHUNT_API BOOL mozce_TextOutA(HDC hdc, int nXStart, int nYStart, const char* lpString, int cbString) { - return mozce_ExtTextOutA(hdc, nXStart, nYStart, 0, NULL, lpString, cbString, NULL); + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("mozce_TextOutA (%s) called\n", lpString); +#endif + + return mozce_ExtTextOutA(hdc, nXStart, nYStart, 0, NULL, lpString, cbString, NULL); } MOZCE_SHUNT_API DWORD mozce_GetGlyphOutlineA(HDC inDC, CHAR inChar, UINT inFormat, void* inGM, DWORD inBufferSize, LPVOID outBuffer, CONST mozce_MAT2* inMAT2) @@ -974,23 +969,15 @@ MOZCE_SHUNT_API HWND mozce_FindWindowA(LPCSTR inClass, LPCSTR inWindow) HWND retval = NULL; LPTSTR wClass = a2w_malloc(inClass, -1, NULL); - if(NULL != wClass) - { - if(NULL == inWindow) - { - retval = FindWindow(wClass, NULL); - } - else - { - LPTSTR wWindow = a2w_malloc(inWindow, -1, NULL); - if(NULL != wWindow) - { - retval = FindWindow(wClass, wWindow); - free(wWindow); - } - } + LPTSTR wWindow = a2w_malloc(inWindow, -1, NULL); + + retval = FindWindow(wClass, NULL); + + if (wWindow) + free(wWindow); + + if (wClass) free(wClass); - } return retval; } @@ -1056,7 +1043,7 @@ MOZCE_SHUNT_API LRESULT mozce_SendMessageA(HWND hWnd, UINT msg, WPARAM wParam, L mozce_printf("mozce_SendMessageA called\n"); #endif - wchar_t *lpNewText = NULL; + unsigned short *lpNewText = NULL; LRESULT res; LPARAM lParamOrig = lParam; @@ -1170,19 +1157,6 @@ MOZCE_SHUNT_API BOOL mozce_GetVersionExA(LPOSVERSIONINFOA lpv) return TRUE; } -MOZCE_SHUNT_API BOOL mozce_PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg) -{ - MOZCE_PRECHECK - -#ifdef LOUD_PEEKMESSAGE -#ifdef DEBUG - mozce_printf("mozce_PeekMessageA called\n"); -#endif -#endif - - return PeekMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg); -} - MOZCE_SHUNT_API LRESULT mozce_DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { @@ -1388,15 +1362,45 @@ MOZCE_SHUNT_API FARPROC mozce_GetProcAddressA(HMODULE hMod, const char *name) return p; } +MOZCE_SHUNT_API HBITMAP mozce_LoadBitmapA(HINSTANCE hInstance, LPCSTR lpCursorName) +{ + MOZCE_PRECHECK + +#ifdef DEBUG + mozce_printf("mozce_LoadBitmapA called\n"); +#endif + + unsigned short *bitmapNameW; + HBITMAP hc; + + if(lpCursorName > (LPCSTR) 0xFFFF) + { + int len = strlen(lpCursorName); + + bitmapNameW = (unsigned short*)_alloca((len + 1) * 2); + MultiByteToWideChar(CP_ACP, 0, lpCursorName, -1, bitmapNameW, len + 1); + } + else + { + bitmapNameW = (LPWSTR) (LPSTR) lpCursorName; + } + + hc = LoadBitmapW(hInstance, bitmapNameW); + + return hc; +} + MOZCE_SHUNT_API HCURSOR mozce_LoadCursorA(HINSTANCE hInstance, LPCSTR lpCursorName) { MOZCE_PRECHECK #ifdef DEBUG - mozce_printf("mozce_LoadCursorA called\n"); + mozce_printf("-- mozce_LoadCursorA called\n"); #endif + + return NULL; - wchar_t *lpCursorNameW; + unsigned short *lpCursorNameW; HCURSOR hc; if(lpCursorName > (LPCSTR) 0xFFFF) @@ -1561,7 +1565,7 @@ MOZCE_SHUNT_API HANDLE mozce_CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttribute #endif HANDLE hEvent; - wchar_t *lpNameNew = NULL; + unsigned short *lpNameNew = NULL; int len; if(lpName) @@ -1603,8 +1607,12 @@ MOZCE_SHUNT_API HMENU mozce_LoadMenuA(HINSTANCE hInstance, LPCSTR lpMenuName) } +#ifdef GetProp +#undef GetProp +#endif +#define GetProp GetProp -MOZCE_SHUNT_API HANDLE mozce_GetPropA(HWND hWnd, LPCSTR lpString) +MOZCE_SHUNT_API HANDLE mozce_GetPropA(HWND hWnd, const char* lpString) { MOZCE_PRECHECK @@ -1625,7 +1633,12 @@ MOZCE_SHUNT_API HANDLE mozce_GetPropA(HWND hWnd, LPCSTR lpString) return h; } -MOZCE_SHUNT_API BOOL mozce_SetPropA(HWND hWnd, LPCSTR lpString, HANDLE hData) +#ifdef SetProp +#undef SetProp +#endif +#define SetProp SetProp + +MOZCE_SHUNT_API BOOL mozce_SetPropA(HWND hWnd, const char* lpString, HANDLE hData) { MOZCE_PRECHECK @@ -1647,8 +1660,12 @@ MOZCE_SHUNT_API BOOL mozce_SetPropA(HWND hWnd, LPCSTR lpString, HANDLE hData) } return b; } +#ifdef RemoveProp +#undef RemoveProp +#endif +#define RemoveProp RemoveProp -MOZCE_SHUNT_API HANDLE mozce_RemovePropA(HWND hWnd, LPCSTR lpString) +MOZCE_SHUNT_API HANDLE mozce_RemovePropA(HWND hWnd, const char* lpString) { MOZCE_PRECHECK @@ -1661,7 +1678,7 @@ MOZCE_SHUNT_API HANDLE mozce_RemovePropA(HWND hWnd, LPCSTR lpString) if (IS_INTRESOURCE(lpString)) return RemoveProp(hWnd, (const unsigned short *)lpString); - LPTSTR wString = a2w_malloc(lpString, -1, NULL); + unsigned short* wString = a2w_malloc(lpString, -1, NULL); if (wString) { h = RemoveProp(hWnd, wString); free(wString); @@ -1670,7 +1687,7 @@ MOZCE_SHUNT_API HANDLE mozce_RemovePropA(HWND hWnd, LPCSTR lpString) } -MOZCE_SHUNT_API HANDLE mozce_FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData) +MOZCE_SHUNT_API HANDLE mozce_FindFirstFileA(const char* lpFileName, LPWIN32_FIND_DATAA lpFindFileData) { MOZCE_PRECHECK @@ -1708,7 +1725,7 @@ MOZCE_SHUNT_API HANDLE mozce_FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATA return h; } -MOZCE_SHUNT_API BOOL mozce_FindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData) +MOZCE_SHUNT_API BOOL mozce_FindNextFileA(HANDLE hFindFile, WIN32_FIND_DATAA* lpFindFileData) { MOZCE_PRECHECK @@ -1875,7 +1892,7 @@ MyEnumFontFamProc(CONST LOGFONT *lf, CONST TEXTMETRIC *tm, DWORD fonttype, LPARA return (*fn) (&lfw, tm, fonttype, parg->lParam); } -MOZCE_SHUNT_API int mozce_EnumFontFamiliesA(HDC hdc, LPCSTR lpszFamily, FONTENUMPROC lpEnumFontFamProc, LPARAM lParam) +MOZCE_SHUNT_API int mozce_EnumFontFamiliesA(HDC hdc, const char* lpszFamily, FONTENUMPROC lpEnumFontFamProc, LPARAM lParam) { MOZCE_PRECHECK @@ -1884,7 +1901,7 @@ MOZCE_SHUNT_API int mozce_EnumFontFamiliesA(HDC hdc, LPCSTR lpszFamily, FONTENUM #endif MYENUMFONTFAMARG arg; - wchar_t *lpszFamilyW = NULL; + unsigned short *lpszFamilyW = NULL; if(lpszFamily != NULL) lpszFamilyW = a2w_malloc(lpszFamily, -1, NULL); @@ -1901,7 +1918,7 @@ MOZCE_SHUNT_API int mozce_EnumFontFamiliesA(HDC hdc, LPCSTR lpszFamily, FONTENUM } -MOZCE_SHUNT_API int mozce_GetTextFaceA(HDC hdc, int nCount, LPSTR lpFaceName) +MOZCE_SHUNT_API int mozce_GetTextFaceA(HDC hdc, int nCount, const char* lpFaceName) { MOZCE_PRECHECK @@ -1920,7 +1937,7 @@ MOZCE_SHUNT_API int mozce_GetTextFaceA(HDC hdc, int nCount, LPSTR lpFaceName) int res = GetTextFaceW(hdc, nCount, wBuffer); if(res != GDI_ERROR && res != 0 && lpFaceName) { - int result = w2a_buffer(wBuffer, -1, lpFaceName, nCount); + int result = w2a_buffer(wBuffer, -1, (char*)lpFaceName, nCount); if (result == 0) res = result; @@ -1933,7 +1950,7 @@ MOZCE_SHUNT_API int mozce_GetTextFaceA(HDC hdc, int nCount, LPSTR lpFaceName) return res; } -MOZCE_SHUNT_API BOOL mozce_GetTextMetricsA(HDC hdc, LPTEXTMETRICA lptma) +MOZCE_SHUNT_API BOOL mozce_GetTextMetricsA(HDC hdc, TEXTMETRICA* lptma) { MOZCE_PRECHECK diff --git a/mozilla/build/wince/shunt/win32W.cpp b/mozilla/build/wince/shunt/win32W.cpp index 5990673e12e..cb7b2e7ce09 100755 --- a/mozilla/build/wince/shunt/win32W.cpp +++ b/mozilla/build/wince/shunt/win32W.cpp @@ -129,7 +129,7 @@ MOZCE_SHUNT_API HANDLE mozce_OpenSemaphoreW(DWORD inDesiredAccess, BOOL inInheri } -MOZCE_SHUNT_API DWORD mozce_GetGlyphOutlineW(HDC inDC, WCHAR inChar, UINT inFormat, void* inGM, DWORD inBufferSize, LPVOID outBuffer, CONST mozce_MAT2* inMAT2) +MOZCE_SHUNT_API DWORD mozce_GetGlyphOutlineW(HDC inDC, WCHAR inChar, UINT inFormat, void* inGM, DWORD inBufferSize, LPVOID outBuffer, CONST VOID* inMAT2) { MOZCE_PRECHECK diff --git a/mozilla/build/wince/tools/ppc2003arm/arm-wince-gcc.c b/mozilla/build/wince/tools/ppc2003arm/arm-wince-gcc.c index 7e522154acd..9f4bfb487a2 100755 --- a/mozilla/build/wince/tools/ppc2003arm/arm-wince-gcc.c +++ b/mozilla/build/wince/tools/ppc2003arm/arm-wince-gcc.c @@ -23,6 +23,8 @@ main(int argc, char **argv) args[i++] = "/I\"" SHUNT_INC "\""; args[i++] = "/FI\"mozce_shunt.h\""; + args[i++] = "/DMOZCE_STATIC_BUILD"; + args[i++] = "/DARM"; args[i++] = "/DWINCE"; args[i++] = "/D_WIN32_WCE=420"; @@ -36,8 +38,10 @@ main(int argc, char **argv) args[i++] = "/Gy"; // For link warning LNK1166 // args[i++] = "/Gf"; - // args[i++] = "/GF"; - // args[i++] = "/QRxscale"; + + args[i++] = "/Gf"; + args[i++] = "/QRxscale"; + // args[i++] = "/QRxscalesched"; // args[i++] = "/Ox"; @@ -82,6 +86,7 @@ main(int argc, char **argv) args[i++] = "-ENTRY:mainACRTStartup"; args[i++] = "-SUBSYSTEM:WINDOWSCE,4.20"; + args[i++] = "-ALIGN:\"4096\""; args[i++] = "-MACHINE:ARM"; args[i++] = "-LIBPATH:\"" WCE_LIB "\""; args[i++] = "-LIBPATH:\"" SHUNT_LIB "\""; diff --git a/mozilla/build/wince/tools/ppc2003arm/arm-wince-link.c b/mozilla/build/wince/tools/ppc2003arm/arm-wince-link.c index 8cfb3be8f45..bdbe84b33c2 100755 --- a/mozilla/build/wince/tools/ppc2003arm/arm-wince-link.c +++ b/mozilla/build/wince/tools/ppc2003arm/arm-wince-link.c @@ -29,9 +29,14 @@ main(int argc, char **argv) args[i++] = "shunt.lib"; + args[i++] = "ole32.lib"; + args[i++] = "/NODEFAULTLIB:LIBC"; args[i++] = "/NODEFAULTLIB:OLDNAMES"; + + args[i++] = "/align:\"4096\""; + // args[i++] = "/STACK:0x5000000,0x100000"; // if -DLL is not passed, then change the entry to 'main' diff --git a/mozilla/build/wince/tools/ppc2003arm/toolpaths.h b/mozilla/build/wince/tools/ppc2003arm/toolpaths.h index d36f2c2631a..4114265ba7b 100755 --- a/mozilla/build/wince/tools/ppc2003arm/toolpaths.h +++ b/mozilla/build/wince/tools/ppc2003arm/toolpaths.h @@ -7,7 +7,7 @@ #define WCE_INC "c:/Program Files/Windows CE Tools/wce420/POCKET PC 2003/Include/Armv4/" #define WCE_LIB "c:/Program Files/Windows CE Tools/wce420/POCKET PC 2003/Lib/Armv4/" -#define SHUNT_LIB TOPSRCDIR "/build/wince/shunt/build/ARMV4Rel/" +#define SHUNT_LIB TOPSRCDIR "/build/wince/shunt/build/static/ARMV4Dbg/" #define SHUNT_INC TOPSRCDIR "/build/wince/shunt/include/" #define ASM_PATH WCE_BIN "armasm.exe" @@ -18,23 +18,23 @@ #define MAX_NOLEAK_BUFFERS 100 char noleak_buffers[MAX_NOLEAK_BUFFERS][1024]; static int next_buffer = 0; - + int argpath_conv(char **args_in, char **args_out) { int i = 0; - + while (args_in[i]) { args_out[i] = args_in[i]; - + if (args_in[i]) { - char *offset = strstr(args_out[i], "/cygdrive/c/"); + char *offset = strstr(args_out[i], "/cygdrive/"); if (offset) { strcpy(offset, offset+9); - offset[0] = 'c'; + offset[0] = offset[1]; offset[1] = ':'; offset[2] = '/'; }