Merge branch 'resolve-srand'
diff --git a/expat/CMakeLists.txt b/expat/CMakeLists.txt
index d053a1e..c749f54 100755
--- a/expat/CMakeLists.txt
+++ b/expat/CMakeLists.txt
@@ -41,6 +41,9 @@
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -wd4996)
endif(MSVC)
+if(WIN32)
+ add_definitions(-DCOMPILING_FOR_WINDOWS)
+endif(WIN32)
set(expat_SRCS
lib/xmlparse.c
diff --git a/expat/bcb5/expat.bpr b/expat/bcb5/expat.bpr
index 7aff450..8a80a98 100644
--- a/expat/bcb5/expat.bpr
+++ b/expat/bcb5/expat.bpr
@@ -25,7 +25,7 @@
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="ilink32"/>
- <USERDEFINES value="_WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILED_FROM_DSP;EXPAT_EXPORTS"/>
+ <USERDEFINES value="_WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILING_FOR_WINDOWS;EXPAT_EXPORTS"/>
<SYSDEFINES value="_NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL"/>
<MAINSOURCE value="expat.bpf"/>
<INCLUDEPATH value="..\lib;$(BCB)\include"/>
@@ -94,14 +94,14 @@
[HistoryLists\hlConditionals]
Count=8
-Item0=_WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILED_FROM_DSP;EXPAT_EXPORTS
-Item1=_WINDOWS;WIN32;NDEBUG;_DEBUG;_USRDLL;COMPILED_FROM_DSP;EXPAT_EXPORTS
-Item2=WIN32;_WINDOWS;NDEBUG;_DEBUG;_USRDLL;COMPILED_FROM_DSP;EXPAT_EXPORTS
-Item3=WIN32;_WINDOWS;NDEBUG;_DEBUG;_USRDLL;EXPAT_EXPORTS;COMPILED_FROM_DSP
-Item4=NDEBUG;WIN32;_WINDOWS;_USRDLL;_DEBUG;EXPAT_EXPORTS;COMPILED_FROM_DSP
-Item5=NDEBUG;WIN32;_WINDOWS;_USRDLL;EXPAT_EXPORTS;COMPILED_FROM_DSP;_DEBUG
-Item6=NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;EXPAT_EXPORTS;COMPILED_FROM_DSP;_DEBUG
-Item7=NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;EXPAT_EXPORTS;COMPILED_FROM_DSP
+Item0=_WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILING_FOR_WINDOWS;EXPAT_EXPORTS
+Item1=_WINDOWS;WIN32;NDEBUG;_DEBUG;_USRDLL;COMPILING_FOR_WINDOWS;EXPAT_EXPORTS
+Item2=WIN32;_WINDOWS;NDEBUG;_DEBUG;_USRDLL;COMPILING_FOR_WINDOWS;EXPAT_EXPORTS
+Item3=WIN32;_WINDOWS;NDEBUG;_DEBUG;_USRDLL;EXPAT_EXPORTS;COMPILING_FOR_WINDOWS
+Item4=NDEBUG;WIN32;_WINDOWS;_USRDLL;_DEBUG;EXPAT_EXPORTS;COMPILING_FOR_WINDOWS
+Item5=NDEBUG;WIN32;_WINDOWS;_USRDLL;EXPAT_EXPORTS;COMPILING_FOR_WINDOWS;_DEBUG
+Item6=NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;EXPAT_EXPORTS;COMPILING_FOR_WINDOWS;_DEBUG
+Item7=NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;EXPAT_EXPORTS;COMPILING_FOR_WINDOWS
[HistoryLists\hlIntOutputDir]
Count=7
diff --git a/expat/bcb5/expat.mak b/expat/bcb5/expat.mak
index 7c9c23f..fd7e26f 100644
--- a/expat/bcb5/expat.mak
+++ b/expat/bcb5/expat.mak
@@ -36,7 +36,7 @@
PATHRC = .;
DEBUGLIBPATH = $(BCB)\lib\debug
RELEASELIBPATH = $(BCB)\lib\release
-USERDEFINES = _WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILED_FROM_DSP
+USERDEFINES = _WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILING_FOR_WINDOWS
SYSDEFINES = _NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL
INCLUDEPATH = ..\lib;$(BCB)\include
LIBPATH = ..\lib;$(BCB)\lib;$(RELEASELIBPATH)
diff --git a/expat/bcb5/expat_static.bpr b/expat/bcb5/expat_static.bpr
index 0b78ec8..3a3d6ad 100644
--- a/expat/bcb5/expat_static.bpr
+++ b/expat/bcb5/expat_static.bpr
@@ -23,7 +23,7 @@
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="TLib"/>
- <USERDEFINES value="_WINDOWS;WIN32;NDEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC"/>
+ <USERDEFINES value="_WINDOWS;WIN32;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC"/>
<SYSDEFINES value="_NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL"/>
<MAINSOURCE value="expat_static.bpf"/>
<INCLUDEPATH value="..\lib;$(BCB)\include"/>
@@ -93,13 +93,13 @@
[HistoryLists\hlConditionals]
Count=7
-Item0=_WINDOWS;WIN32;NDEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC
-Item1=_WINDOWS;WIN32;NDEBUG;_DEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC
-Item2=WIN32;_WINDOWS;NDEBUG;_DEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC
-Item3=WIN32;_WINDOWS;NDEBUG;_LIB;COMPILED_FROM_DSP;_DEBUG
-Item4=WIN32;_WINDOWS;NDEBUG;_LIB;COMPILED_FROM_DSP
-Item5=WIN32;_WINDOWS;NDEBUG;_LIB;COMPILED_FROM_DSP;_MBCS
-Item6=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILED_FROM_DSP
+Item0=_WINDOWS;WIN32;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC
+Item1=_WINDOWS;WIN32;NDEBUG;_DEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC
+Item2=WIN32;_WINDOWS;NDEBUG;_DEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC
+Item3=WIN32;_WINDOWS;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;_DEBUG
+Item4=WIN32;_WINDOWS;NDEBUG;_LIB;COMPILING_FOR_WINDOWS
+Item5=WIN32;_WINDOWS;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;_MBCS
+Item6=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILING_FOR_WINDOWS
[HistoryLists\hlIntOutputDir]
Count=6
diff --git a/expat/bcb5/expat_static.mak b/expat/bcb5/expat_static.mak
index 9137d3b..3ae1733 100644
--- a/expat/bcb5/expat_static.mak
+++ b/expat/bcb5/expat_static.mak
@@ -35,7 +35,7 @@
LINKER = TLib
DEBUGLIBPATH = $(BCB)\lib\debug
RELEASELIBPATH = $(BCB)\lib\release
-USERDEFINES = _WINDOWS;WIN32;NDEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC
+USERDEFINES = _WINDOWS;WIN32;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC
SYSDEFINES = _NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL
INCLUDEPATH = ..\lib;$(BCB)\include
LIBPATH = ..\lib;$(BCB)\lib;$(RELEASELIBPATH)
diff --git a/expat/bcb5/expatw.bpr b/expat/bcb5/expatw.bpr
index a9c9f75..5cd1e0c 100644
--- a/expat/bcb5/expatw.bpr
+++ b/expat/bcb5/expatw.bpr
@@ -25,7 +25,7 @@
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="ilink32"/>
- <USERDEFINES value="_WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILED_FROM_DSP;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T"/>
+ <USERDEFINES value="_WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILING_FOR_WINDOWS;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T"/>
<SYSDEFINES value="_NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL"/>
<MAINSOURCE value="expatw.bpf"/>
<INCLUDEPATH value="..\lib;$(BCB)\include"/>
@@ -94,15 +94,15 @@
[HistoryLists\hlConditionals]
Count=9
-Item0=_WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILED_FROM_DSP;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T
-Item1=_WINDOWS;WIN32;NDEBUG;_DEBUG;_USRDLL;COMPILED_FROM_DSP;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T
-Item2=_WINDOWS;WIN32;NDEBUG;_DEBUG;_USRDLL;EXPAT_EXPORTS;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T
-Item3=NDEBUG;COMPILED_FROM_DSP;WIN32;_WINDOWS;_USRDLL;EXPAT_EXPORTS;_DEBUG;XML_UNICODE_WCHAR_T
-Item4=NDEBUG;COMPILED_FROM_DSP;WIN32;_WINDOWS;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T;_DEBUG
-Item5=NDEBUG;COMPILED_FROM_DSP;WIN32;_WINDOWS;_UNICODE;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T;_DEBUG
-Item6=NDEBUG;COMPILED_FROM_DSP;WIN32;_WINDOWS;_UNICODE;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T
-Item7=NDEBUG;COMPILED_FROM_DSP;WIN32;_WINDOWS;_MBCS;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T;XML_UNICODE
-Item8=NDEBUG;COMPILED_FROM_DSP;WIN32;_WINDOWS;_MBCS;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T
+Item0=_WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILING_FOR_WINDOWS;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T
+Item1=_WINDOWS;WIN32;NDEBUG;_DEBUG;_USRDLL;COMPILING_FOR_WINDOWS;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T
+Item2=_WINDOWS;WIN32;NDEBUG;_DEBUG;_USRDLL;EXPAT_EXPORTS;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T
+Item3=NDEBUG;COMPILING_FOR_WINDOWS;WIN32;_WINDOWS;_USRDLL;EXPAT_EXPORTS;_DEBUG;XML_UNICODE_WCHAR_T
+Item4=NDEBUG;COMPILING_FOR_WINDOWS;WIN32;_WINDOWS;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T;_DEBUG
+Item5=NDEBUG;COMPILING_FOR_WINDOWS;WIN32;_WINDOWS;_UNICODE;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T;_DEBUG
+Item6=NDEBUG;COMPILING_FOR_WINDOWS;WIN32;_WINDOWS;_UNICODE;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T
+Item7=NDEBUG;COMPILING_FOR_WINDOWS;WIN32;_WINDOWS;_MBCS;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T;XML_UNICODE
+Item8=NDEBUG;COMPILING_FOR_WINDOWS;WIN32;_WINDOWS;_MBCS;_USRDLL;EXPAT_EXPORTS;XML_UNICODE_WCHAR_T
[HistoryLists\hlIntOutputDir]
Count=8
diff --git a/expat/bcb5/expatw.mak b/expat/bcb5/expatw.mak
index 08e17d0..47b9fe8 100644
--- a/expat/bcb5/expatw.mak
+++ b/expat/bcb5/expatw.mak
@@ -36,7 +36,7 @@
PATHRC = .;
DEBUGLIBPATH = $(BCB)\lib\debug
RELEASELIBPATH = $(BCB)\lib\release
-USERDEFINES = _WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T
+USERDEFINES = _WINDOWS;WIN32;NDEBUG;_USRDLL;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T
SYSDEFINES = _NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL
INCLUDEPATH = ..\lib;$(BCB)\include
LIBPATH = ..\lib;$(BCB)\lib;$(RELEASELIBPATH)
diff --git a/expat/bcb5/expatw_static.bpr b/expat/bcb5/expatw_static.bpr
index 457acc7..96ee994 100644
--- a/expat/bcb5/expatw_static.bpr
+++ b/expat/bcb5/expatw_static.bpr
@@ -23,7 +23,7 @@
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="TLib"/>
- <USERDEFINES value="_WINDOWS;WIN32;NDEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC;XML_UNICODE_WCHAR_T"/>
+ <USERDEFINES value="_WINDOWS;WIN32;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC;XML_UNICODE_WCHAR_T"/>
<SYSDEFINES value="_NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL"/>
<MAINSOURCE value="expatw_static.bpf"/>
<INCLUDEPATH value="..\lib;$(BCB)\include"/>
@@ -94,21 +94,21 @@
[HistoryLists\hlConditionals]
Count=15
-Item0=_WINDOWS;WIN32;NDEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC;XML_UNICODE_WCHAR_T
-Item1=_WINDOWS;WIN32;NDEBUG;_DEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC;XML_UNICODE_WCHAR_T
-Item2=WIN32;_WINDOWS;NDEBUG;_DEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC;XML_UNICODE_WCHAR_T
-Item3=WIN32;_WINDOWS;NDEBUG;_DEBUG;_LIB;XML_STATIC;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T
-Item4=WIN32;_WINDOWS;NDEBUG;_LIB;COMPILED_FROM_DSP;_DEBUG;XML_UNICODE_WCHAR_T
-Item5=WIN32;_WINDOWS;NDEBUG;_UNICODE;_LIB;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T;_DEBUG
-Item6=WIN32;_WINDOWS;NDEBUG;_UNICODE;_LIB;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T;_DEBUG;__cplusplus
-Item7=WIN32;_WINDOWS;NDEBUG;_UNICODE;_LIB;COMPILED_FROM_DSP;XML_UNICODE;_DEBUG
-Item8=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILED_FROM_DSP;XML_UNICODE;_DEBUG
-Item9=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T;_DEBUG;__WCHAR_T
-Item10=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T;_DEBUG;_UNICODE
-Item11=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILED_FROM_DSP;XML_UNICODE;_DEBUG;_UNICODE
-Item12=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T;_DEBUG
-Item13=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T
-Item14=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILED_FROM_DSP;XML_UNICODE_WCHAR_T;XML_UNICODE
+Item0=_WINDOWS;WIN32;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC;XML_UNICODE_WCHAR_T
+Item1=_WINDOWS;WIN32;NDEBUG;_DEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC;XML_UNICODE_WCHAR_T
+Item2=WIN32;_WINDOWS;NDEBUG;_DEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC;XML_UNICODE_WCHAR_T
+Item3=WIN32;_WINDOWS;NDEBUG;_DEBUG;_LIB;XML_STATIC;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T
+Item4=WIN32;_WINDOWS;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;_DEBUG;XML_UNICODE_WCHAR_T
+Item5=WIN32;_WINDOWS;NDEBUG;_UNICODE;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T;_DEBUG
+Item6=WIN32;_WINDOWS;NDEBUG;_UNICODE;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T;_DEBUG;__cplusplus
+Item7=WIN32;_WINDOWS;NDEBUG;_UNICODE;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE;_DEBUG
+Item8=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE;_DEBUG
+Item9=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T;_DEBUG;__WCHAR_T
+Item10=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T;_DEBUG;_UNICODE
+Item11=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE;_DEBUG;_UNICODE
+Item12=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T;_DEBUG
+Item13=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T
+Item14=WIN32;_WINDOWS;NDEBUG;_MBCS;_LIB;COMPILING_FOR_WINDOWS;XML_UNICODE_WCHAR_T;XML_UNICODE
[HistoryLists\hlIntOutputDir]
Count=6
diff --git a/expat/bcb5/expatw_static.mak b/expat/bcb5/expatw_static.mak
index 16b7e5b..156adeb 100644
--- a/expat/bcb5/expatw_static.mak
+++ b/expat/bcb5/expatw_static.mak
@@ -35,7 +35,7 @@
LINKER = TLib
DEBUGLIBPATH = $(BCB)\lib\debug
RELEASELIBPATH = $(BCB)\lib\release
-USERDEFINES = _WINDOWS;WIN32;NDEBUG;_LIB;COMPILED_FROM_DSP;XML_STATIC;XML_UNICODE_WCHAR_T
+USERDEFINES = _WINDOWS;WIN32;NDEBUG;_LIB;COMPILING_FOR_WINDOWS;XML_STATIC;XML_UNICODE_WCHAR_T
SYSDEFINES = _NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL
INCLUDEPATH = ..\lib;$(BCB)\include
LIBPATH = ..\lib;$(BCB)\lib;$(RELEASELIBPATH)
diff --git a/expat/bcb5/xmlwf.bpr b/expat/bcb5/xmlwf.bpr
index bc76586..bd7a635 100644
--- a/expat/bcb5/xmlwf.bpr
+++ b/expat/bcb5/xmlwf.bpr
@@ -25,7 +25,7 @@
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="ilink32"/>
- <USERDEFINES value="NDEBUG;WIN32;_CONSOLE;COMPILED_FROM_DSP"/>
+ <USERDEFINES value="NDEBUG;WIN32;_CONSOLE;COMPILING_FOR_WINDOWS"/>
<SYSDEFINES value="_NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL"/>
<MAINSOURCE value="xmlwf.bpf"/>
<INCLUDEPATH value="..\xmlwf;$(BCB)\include"/>
@@ -94,12 +94,12 @@
[HistoryLists\hlConditionals]
Count=6
-Item0=NDEBUG;WIN32;_CONSOLE;COMPILED_FROM_DSP
-Item1=NDEBUG;WIN32;_CONSOLE;COMPILED_FROM_DSP;_DEBUG;XML_UNICODE_WCHAR_T;_UNICODE
-Item2=NDEBUG;WIN32;_CONSOLE;COMPILED_FROM_DSP;_DEBUG;XML_UNICODE_WCHAR_T
-Item3=NDEBUG;WIN32;_CONSOLE;COMPILED_FROM_DSP;_DEBUG
-Item4=NDEBUG;WIN32;_CONSOLE;COMPILED_FROM_DSP;_DEBUG;_UNICODE;XML_UNICODE_WCHAR_T
-Item5=NDEBUG;WIN32;_CONSOLE;COMPILED_FROM_DSP;_DEBUG;_UNICODE
+Item0=NDEBUG;WIN32;_CONSOLE;COMPILING_FOR_WINDOWS
+Item1=NDEBUG;WIN32;_CONSOLE;COMPILING_FOR_WINDOWS;_DEBUG;XML_UNICODE_WCHAR_T;_UNICODE
+Item2=NDEBUG;WIN32;_CONSOLE;COMPILING_FOR_WINDOWS;_DEBUG;XML_UNICODE_WCHAR_T
+Item3=NDEBUG;WIN32;_CONSOLE;COMPILING_FOR_WINDOWS;_DEBUG
+Item4=NDEBUG;WIN32;_CONSOLE;COMPILING_FOR_WINDOWS;_DEBUG;_UNICODE;XML_UNICODE_WCHAR_T
+Item5=NDEBUG;WIN32;_CONSOLE;COMPILING_FOR_WINDOWS;_DEBUG;_UNICODE
[HistoryLists\hlIntOutputDir]
Count=3
diff --git a/expat/bcb5/xmlwf.mak b/expat/bcb5/xmlwf.mak
index f74126e..0a66744 100644
--- a/expat/bcb5/xmlwf.mak
+++ b/expat/bcb5/xmlwf.mak
@@ -36,7 +36,7 @@
PATHRC = .;
DEBUGLIBPATH = $(BCB)\lib\debug
RELEASELIBPATH = $(BCB)\lib\release
-USERDEFINES = NDEBUG;WIN32;_CONSOLE;COMPILED_FROM_DSP
+USERDEFINES = NDEBUG;WIN32;_CONSOLE;COMPILING_FOR_WINDOWS
SYSDEFINES = _NO_VCL;_ASSERTE;NO_STRICT;_RTLDLL
INCLUDEPATH = ..\xmlwf;$(BCB)\include
LIBPATH = ..\xmlwf;$(BCB)\lib;$(RELEASELIBPATH)
diff --git a/expat/lib/expat.dsp b/expat/lib/expat.dsp
index 6440d37..347ca2a 100644
--- a/expat/lib/expat.dsp
+++ b/expat/lib/expat.dsp
@@ -43,7 +43,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "EXPAT_EXPORTS" /Yu"stdafx.h" /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMPILED_FROM_DSP" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMPILING_FOR_WINDOWS" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
@@ -70,7 +70,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "EXPAT_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /D "_DEBUG" /D "COMPILED_FROM_DSP" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FR /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /D "_DEBUG" /D "COMPILING_FOR_WINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FR /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
diff --git a/expat/lib/expat_static.dsp b/expat/lib/expat_static.dsp
index ca39bc0..33e1a0b 100644
--- a/expat/lib/expat_static.dsp
+++ b/expat/lib/expat_static.dsp
@@ -41,7 +41,7 @@
# PROP Intermediate_Dir "..\win32\tmp\Release_static"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "COMPILED_FROM_DSP" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "COMPILING_FOR_WINDOWS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x1009 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
@@ -65,7 +65,7 @@
# PROP Intermediate_Dir "..\win32\tmp\Debug_static"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "COMPILED_FROM_DSP" /D "_MBCS" /D "_LIB" /FR /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "COMPILING_FOR_WINDOWS" /D "_MBCS" /D "_LIB" /FR /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x1009 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
diff --git a/expat/lib/expatw.dsp b/expat/lib/expatw.dsp
index 77497b5..89106e6 100644
--- a/expat/lib/expatw.dsp
+++ b/expat/lib/expatw.dsp
@@ -43,7 +43,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "EXPAT_EXPORTS" /Yu"stdafx.h" /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "COMPILED_FROM_DSP" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XML_UNICODE_WCHAR_T" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "COMPILING_FOR_WINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XML_UNICODE_WCHAR_T" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
@@ -70,7 +70,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "EXPAT_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /D "_DEBUG" /D "COMPILED_FROM_DSP" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XML_UNICODE_WCHAR_T" /FR /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /D "_DEBUG" /D "COMPILING_FOR_WINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XML_UNICODE_WCHAR_T" /FR /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
diff --git a/expat/lib/expatw_static.dsp b/expat/lib/expatw_static.dsp
index f13dd72..a464a82 100644
--- a/expat/lib/expatw_static.dsp
+++ b/expat/lib/expatw_static.dsp
@@ -41,7 +41,7 @@
# PROP Intermediate_Dir "..\win32\tmp\Release-w_static"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "COMPILED_FROM_DSP" /D "XML_UNICODE_WCHAR_T" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "COMPILING_FOR_WINDOWS" /D "XML_UNICODE_WCHAR_T" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x1009 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
@@ -65,7 +65,7 @@
# PROP Intermediate_Dir "..\win32\tmp\Debug-w_static"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "COMPILED_FROM_DSP" /D "XML_UNICODE_WCHAR_T" /FR /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /D "COMPILING_FOR_WINDOWS" /D "XML_UNICODE_WCHAR_T" /FR /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x1009 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c
index 2d0bd3b..c0e8f6e 100644
--- a/expat/lib/xmlparse.c
+++ b/expat/lib/xmlparse.c
@@ -6,11 +6,18 @@
#include <string.h> /* memset(), memcpy() */
#include <assert.h>
#include <limits.h> /* UINT_MAX */
-#include <time.h> /* time() */
+
+#ifdef COMPILING_FOR_WINDOWS
+#define getpid GetCurrentProcessId
+#else
+#include <sys/time.h> /* gettimeofday() */
+#include <sys/types.h> /* getpid() */
+#include <unistd.h> /* getpid() */
+#endif
#define XML_BUILDING_EXPAT 1
-#ifdef COMPILED_FROM_DSP
+#ifdef COMPILING_FOR_WINDOWS
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
#include "macconfig.h"
@@ -20,7 +27,7 @@
#include "watcomconfig.h"
#elif defined(HAVE_EXPAT_CONFIG_H)
#include <expat_config.h>
-#endif /* ndef COMPILED_FROM_DSP */
+#endif /* ndef COMPILING_FOR_WINDOWS */
#include "ascii.h"
#include "expat.h"
@@ -432,7 +439,7 @@
getElementType(XML_Parser parser, const ENCODING *enc,
const char *ptr, const char *end);
-static unsigned long generate_hash_secret_salt(void);
+static unsigned long generate_hash_secret_salt(XML_Parser parser);
static XML_Bool startParsing(XML_Parser parser);
static XML_Parser
@@ -691,11 +698,38 @@
};
static unsigned long
-generate_hash_secret_salt(void)
+gather_time_entropy(void)
{
- unsigned int seed = time(NULL) % UINT_MAX;
- srand(seed);
- return rand();
+#ifdef COMPILING_FOR_WINDOWS
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft); /* never fails */
+ return ft.dwHighDateTime ^ ft.dwLowDateTime;
+#else
+ struct timeval tv;
+ int gettimeofday_res;
+
+ gettimeofday_res = gettimeofday(&tv, NULL);
+ assert (gettimeofday_res == 0);
+
+ /* Microseconds time is <20 bits entropy */
+ return tv.tv_usec;
+#endif
+}
+
+static unsigned long
+generate_hash_secret_salt(XML_Parser parser)
+{
+ /* Process ID is 0 bits entropy if attacker has local access
+ * XML_Parser address is few bits of entropy if attacker has local access */
+ const unsigned long entropy =
+ gather_time_entropy() ^ getpid() ^ (unsigned long)parser;
+
+ /* Factors are 2^31-1 and 2^61-1 (Mersenne primes M31 and M61) */
+ if (sizeof(unsigned long) == 4) {
+ return entropy * 2147483647;
+ } else {
+ return entropy * 2305843009213693951;
+ }
}
static XML_Bool /* only valid for root parser */
@@ -703,7 +737,7 @@
{
/* hash functions must be initialized before setContext() is called */
if (hash_secret_salt == 0)
- hash_secret_salt = generate_hash_secret_salt();
+ hash_secret_salt = generate_hash_secret_salt(parser);
if (ns) {
/* implicit context only set for root parser, since child
parsers (i.e. external entity parsers) will inherit it
diff --git a/expat/lib/xmlrole.c b/expat/lib/xmlrole.c
index 44772e2..f6e66ab 100644
--- a/expat/lib/xmlrole.c
+++ b/expat/lib/xmlrole.c
@@ -4,7 +4,7 @@
#include <stddef.h>
-#ifdef COMPILED_FROM_DSP
+#ifdef COMPILING_FOR_WINDOWS
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
#include "macconfig.h"
@@ -16,7 +16,7 @@
#ifdef HAVE_EXPAT_CONFIG_H
#include <expat_config.h>
#endif
-#endif /* ndef COMPILED_FROM_DSP */
+#endif /* ndef COMPILING_FOR_WINDOWS */
#include "expat_external.h"
#include "internal.h"
diff --git a/expat/lib/xmltok.c b/expat/lib/xmltok.c
index bf09dfc..5d1d2b4 100644
--- a/expat/lib/xmltok.c
+++ b/expat/lib/xmltok.c
@@ -4,7 +4,7 @@
#include <stddef.h>
-#ifdef COMPILED_FROM_DSP
+#ifdef COMPILING_FOR_WINDOWS
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
#include "macconfig.h"
@@ -16,7 +16,7 @@
#ifdef HAVE_EXPAT_CONFIG_H
#include <expat_config.h>
#endif
-#endif /* ndef COMPILED_FROM_DSP */
+#endif /* ndef COMPILING_FOR_WINDOWS */
#include "expat_external.h"
#include "internal.h"
diff --git a/expat/tests/runtests.dsp b/expat/tests/runtests.dsp
index a5aa234..e9965ca 100644
--- a/expat/tests/runtests.dsp
+++ b/expat/tests/runtests.dsp
@@ -42,7 +42,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\lib" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "COMPILED_FROM_DSP" /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "..\lib" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "COMPILING_FOR_WINDOWS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x1009 /d "NDEBUG"
# ADD RSC /l 0x1009 /d "NDEBUG"
@@ -67,7 +67,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\lib" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "COMPILED_FROM_DSP" /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\lib" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "COMPILING_FOR_WINDOWS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x1009 /d "_DEBUG"
# ADD RSC /l 0x1009 /d "_DEBUG"
diff --git a/expat/xmlwf/xmlfile.c b/expat/xmlwf/xmlfile.c
index 99eeeaa..86880f2 100644
--- a/expat/xmlwf/xmlfile.c
+++ b/expat/xmlwf/xmlfile.c
@@ -8,7 +8,7 @@
#include <string.h>
#include <fcntl.h>
-#ifdef COMPILED_FROM_DSP
+#ifdef COMPILING_FOR_WINDOWS
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
#include "macconfig.h"
@@ -18,7 +18,7 @@
#include "watcomconfig.h"
#elif defined(HAVE_EXPAT_CONFIG_H)
#include <expat_config.h>
-#endif /* ndef COMPILED_FROM_DSP */
+#endif /* ndef COMPILING_FOR_WINDOWS */
#include "expat.h"
#include "xmlfile.h"
diff --git a/expat/xmlwf/xmlwf.dsp b/expat/xmlwf/xmlwf.dsp
index 52f4eec..3af1abb 100755
--- a/expat/xmlwf/xmlwf.dsp
+++ b/expat/xmlwf/xmlwf.dsp
@@ -42,7 +42,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir "."
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\lib" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "COMPILED_FROM_DSP" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\lib" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "COMPILING_FOR_WINDOWS" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
@@ -68,7 +68,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir "."
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /I "..\lib" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "COMPILED_FROM_DSP" /FD /c
+# ADD CPP /nologo /MTd /W3 /GX /ZI /Od /I "..\lib" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "COMPILING_FOR_WINDOWS" /FD /c
# SUBTRACT CPP /Fr /YX
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"