new files for running regression tests under Python. Not yet complete, but

* regressions.py, regressions.xml: new files for running
  regression tests under Python.  Not yet complete, but
  should provide good testing under both Linux and Windows.
* testHTML.c, testSAX.c, xmllint.c: changed the 'fopen' used
  for --push testing to include the 'rb' param when compiled
  under Windows.
diff --git a/regressions.xml b/regressions.xml
new file mode 100644
index 0000000..c78838a
--- /dev/null
+++ b/regressions.xml
@@ -0,0 +1,226 @@
+<RegressionTests>
+<!--
+  Within the following test descriptions the possible elements are:
+    Element Name    Description
+     testname       Plain text name of test
+     execpath       pathname for test program(s)
+     testprog       program to run for the test 
+     flag           flags for program (may have several)
+     file           filename of input file (several, or glob ok)
+     exclfile       filename to be excuded (several, or glob ok)
+     srcdir         global source directory for input file(s)
+     srcsub         subdirectory for input
+     resdir         directory for results file(s)
+     ressub         subdirectory for results    
+     resext         extension for expected result
+     reserrext      extension for error result ('None' => no chk)
+     extarg         additional argument for command
+     errexcl        string to ignore when checking diffs
+     stdin          pipe input file to stdin
+-->
+
+<!--
+  Note:  These defaults are set to run from the root of the build directory
+-->
+  <defaults>
+    <testname>noname</testname>
+<!--    <execpath>win32/bin.msvc</execpath> -->
+    <execpath>.</execpath>
+    <testprog>xmllint</testprog>
+    <srcdir>test</srcdir>
+    <resdir>result</resdir>
+    <file>*.xml</file>
+    <reserrext>err</reserrext>
+    <errexcl/>
+  </defaults>
+
+  <test>
+    <testname>XML Regression Tests</testname>
+    <errexcl>failed to load external entity</errexcl>
+  </test>
+  <test>
+    <testname>XML Entity Subst Regression Tests</testname>
+    <ressub>noent</ressub>
+    <flag>--noent</flag>
+  </test>
+  <test>
+    <testname>XML Namespaces Regression Tests</testname>
+    <srcsub>namespaces</srcsub>
+    <ressub>namespaces</ressub>
+  </test>
+  <test>
+    <testname>xml:id Regression Tests</testname>
+    <testprog>testXPath</testprog>
+    <srcsub>xmlid</srcsub>
+    <ressub>xmlid</ressub>
+    <flag>-i</flag>
+    <file>id_*.xml</file>
+    <extarg>"id('bar')"</extarg>
+  </test>
+  <test>
+    <testname>Error Cases Regression Tests</testname>
+    <srcsub>errors</srcsub>
+    <ressub>errors</ressub>
+  </test>
+  <test>
+    <testname>Error Cases Stream Regression Tests</testname>
+    <srcsub>errors</srcsub>
+    <ressub>errors</ressub>
+    <reserrext>str</reserrext>
+    <flag>--stream</flag>
+  </test>
+  <test>
+    <testname>Reader Regression Tests</testname>
+    <resext>rdr</resext>
+    <flag>--nonet</flag>
+    <flag>--debug</flag>
+    <flag>--stream</flag>
+    <file>*</file>
+    <reserrext>None</reserrext>
+  </test>
+  <test>
+    <testname>Walker Regression Tests</testname>
+    <resext>rdr</resext>
+    <flag>--nonet</flag>
+    <flag>--debug</flag>
+    <flag>--walker</flag>
+    <file>*</file>
+    <reserrext>None</reserrext>
+  </test>
+  <test>
+    <testname>Reader Entities Substitution Regression Tests</testname>
+    <resext>rde</resext>
+    <flag>--nonet</flag>
+    <flag>--debug</flag>
+    <flag>--stream</flag>
+    <flag>--noent</flag>
+    <file>*</file>
+    <reserrext>None</reserrext>
+  </test>
+  <test>
+    <testname>SAX Callbacks Regression Tests</testname>
+    <testprog>testSAX</testprog>
+    <resext>sax</resext>
+    <file>*</file>
+    <exclfile>utf16*.xml</exclfile>
+    <reserrext>None</reserrext>
+  </test>
+  <test>
+    <testname>XML Push Regression Tests</testname>
+    <flag>--push</flag>
+    <errexcl>failed to load external entity</errexcl>
+  </test>
+  <test>
+    <testname>HTML Regression Tests</testname>
+    <testprog>testHTML</testprog>
+    <srcsub>HTML</srcsub>
+    <ressub>HTML</ressub>
+    <file>*</file>
+    <exclfile>wired.html</exclfile>
+  </test>
+  <test>
+    <testname>Push HTML Regression Tests</testname>
+    <testprog>testHTML</testprog>
+    <flag>--push</flag>
+    <srcsub>HTML</srcsub>
+    <ressub>HTML</ressub>
+    <file>*</file>
+  </test>
+  <test>
+    <testname>HTML SAX Regression Tests</testname>
+    <testprog>testHTML</testprog>
+    <flag>--sax</flag>
+    <srcsub>HTML</srcsub>
+    <ressub>HTML</ressub>
+    <resext>sax</resext>
+    <reserrext>None</reserrext>
+    <file>*</file>
+  </test>
+  <test>
+    <testname>Push HTML SAX Regression Tests</testname>
+    <testprog>testHTML</testprog>
+    <flag>--sax</flag>
+    <flag>--push</flag>
+    <srcsub>HTML</srcsub>
+    <ressub>HTML</ressub>
+    <resext>sax</resext>
+    <reserrext>None</reserrext>
+    <file>*</file>
+  </test>
+  <test>
+    <testname>Valid Documents Regression Tests</testname>
+    <srcsub>VCM</srcsub>
+    <ressub>VCM</ressub>
+    <resext>None</resext>
+    <reserrext>None</reserrext>
+    <file>*</file>
+    <flag>--valid</flag>
+    <flag>--noout</flag>
+    <flag>--nowarning</flag>
+  </test>
+  <test>
+    <testname>Validity Checking Regression Tests</testname>
+    <srcsub>VC</srcsub>
+    <ressub>VC</ressub>
+    <resext>None</resext>
+    <reserrext/>
+    <file>*</file>
+    <flag>--valid</flag>
+    <flag>--noout</flag>
+  </test>
+  <test>
+    <testname>General Documents Valid Regression Tests</testname>
+    <srcsub>valid</srcsub>
+    <ressub>valid</ressub>
+    <file>*</file>
+    <flag>--valid</flag>
+  </test>
+  <test>
+    <testname>URI Module Regression Tests (1)</testname>
+    <testprog>testURI</testprog>
+    <srcsub>URI</srcsub>
+    <stdin/>
+    <ressub>URI</ressub>
+    <reserrext>None</reserrext>
+    <file>*.data</file>
+    <!-- Note - the following arg needs to use ", not ' -->
+    <flag>-base "http://foo.com/path/to/index.html?orig#help"</flag>
+  </test>
+  <test>
+    <testname>URI Module Regression Tests (2)</testname>
+    <testprog>testURI</testprog>
+    <srcsub>URI</srcsub>
+    <stdin/>
+    <ressub>URI</ressub>
+    <reserrext>None</reserrext>
+    <file>*.uri</file>
+  </test>
+  <test>
+    <testname>XPath Regression Tests (1)</testname>
+    <testprog>testXPath</testprog>
+    <srcsub>XPath/expr</srcsub>
+    <ressub>XPath/expr</ressub>
+    <file>*</file>
+    <flag>-f</flag>
+    <flag>--expr</flag>
+  </test>
+  <test>
+    <testname>XInclude Regression Tests</testname>
+    <srcsub>XInclude/docs</srcsub>
+    <ressub>XInclude</ressub>
+    <file>*</file>
+    <flag>--nowarning</flag>
+    <flag>--xinclude</flag>
+  </test>
+  <test>
+    <testname>XInclude xmlReader Regression Tests</testname>
+    <srcsub>XInclude/docs</srcsub>
+    <ressub>XInclude</ressub>
+    <resext>rdr</resext>
+    <file>*</file>
+    <flag>--nowarning</flag>
+    <flag>--xinclude</flag>
+    <flag>--stream</flag>
+    <flag>--debug</flag>
+  </test>
+</RegressionTests>