Release 0.2, 80% rewrite, nothing left intact ... Daniel
diff --git a/tester.c b/tester.c
index 030ee1c..0075ad7 100644
--- a/tester.c
+++ b/tester.c
@@ -6,20 +6,33 @@
  * $Id$
  */
 
+#ifdef WIN32
+#define HAVE_FCNTL_H
+#include <io.h>
+#else
+#include <config.h>
+#endif
 #include <sys/types.h>
+#ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
+#endif
+#ifdef HAVE_FCNTL_H
 #include <fcntl.h>
+#endif
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
 #include <stdio.h>
 #include <string.h>
 #include <malloc.h>
 
-#include "xml_parser.h"
-#include "xml_tree.h"
+#include "parser.h"
+#include "tree.h"
 
-#define MAX_BUF	500000
-
-static CHAR buffer[MAX_BUF] = 
+/*
+ * Note: there is a couple of errors introduced on purpose.
+ */
+static CHAR buffer[] = 
 "\n\
 <?xml version=\"1.0\">\n\
 <?xml:namespace ns = \"http://www.ietf.org/standards/dav/\" prefix = \"D\"?>\n\
@@ -40,37 +53,31 @@
 \n\
 ";
 
-int readFile(char *filename) {
-    int input;
-    int res;
 
-    memset(buffer, 0, sizeof(buffer));
-    input = open (filename, O_RDONLY);
-    if (input < 0) {
-        fprintf (stderr, "Cannot read file %s :\n", filename);
-	perror ("open failed");
-	return(-1);
-    }
-    res = read(input, buffer, sizeof(buffer));
-    if (res < 0) {
-        fprintf (stderr, "Cannot read file %s :\n", filename);
-	perror ("read failed");
-	return(-1);
-    }
-    if (res >= MAX_BUF) {
-        fprintf (stderr, "Read only %d byte of %s, increase MAX_BUF\n",
-	         res, filename);
-        return(-1);
-    }
-    close(input);
-    return(res);
-}
-
-void parseAndPrint(CHAR *buf) {
+void parseAndPrintFile(char *filename) {
     xmlDocPtr doc;
 
     /*
-     * build a fake XML document from a string;
+     * build an XML tree from a string;
+     */
+    doc = xmlParseFile(filename);
+
+    /*
+     * print it.
+     */
+    xmlDocDump(stdout, doc);
+
+    /*
+     * free it.
+     */
+    xmlFreeDoc(doc);
+}
+
+void parseAndPrintBuffer(CHAR *buf) {
+    xmlDocPtr doc;
+
+    /*
+     * build an XML tree from a string;
      */
     doc = xmlParseDoc(buf);
 
@@ -90,13 +97,10 @@
 
     if (argc > 1) {
         for (i = 1; i < argc ; i++) {
-	    if (readFile(argv[i]) >= 0) {
-	        printf("\n\n------- %s -----------\n", argv[i]);
-	        parseAndPrint(buffer);
-	    }
+	    parseAndPrintFile(argv[i]);
 	}
     } else
-        parseAndPrint(buffer);
+        parseAndPrintBuffer(buffer);
 
     return(0);
 }