added testURI.c, Daniel.
diff --git a/testURI.c b/testURI.c
new file mode 100644
index 0000000..6712119
--- /dev/null
+++ b/testURI.c
@@ -0,0 +1,91 @@
+/*
+ * testURI.c : a small tester program for XML input.
+ *
+ * See Copyright for the status of this software.
+ *
+ * Daniel.Veillard@w3.org
+ */
+
+#ifdef WIN32
+#include "win32config.h"
+#else
+#include "config.h"
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include <libxml/uri.h>
+
+int main(int argc, char **argv) {
+ int i, ret, arg = 1;
+ xmlURIPtr uri;
+ const char *base = NULL;
+ xmlChar *composite;
+
+ if ((!strcmp(argv[arg], "-base")) || (!strcmp(argv[arg], "--base"))) {
+ arg++;
+ base = argv[arg];
+ if (base != NULL)
+ arg++;
+ }
+ uri = xmlCreateURI();
+ if (argv[arg] == NULL) {
+ char str[1024];
+
+ while (1) {
+ /*
+ * read one line in string buffer.
+ */
+ if (fgets (&str[0], sizeof (str) - 1, stdin) == NULL)
+ break;
+
+ /*
+ * remove the ending spaces
+ */
+ i = strlen(str);
+ while ((i > 0) &&
+ ((str[i - 1] == '\n') || (str[i - 1] == '\r') ||
+ (str[i - 1] == ' ') || (str[i - 1] == '\t'))) {
+ i--;
+ str[i] = 0;
+ }
+ if (i <= 0)
+ continue;
+
+ ret = xmlParseURIReference(uri, str);
+ if (ret != 0)
+ printf("%s : error %d\n", str, ret);
+ else {
+ xmlPrintURI(stdout, uri);
+ printf("\n");
+ }
+
+ }
+ } else {
+ while (argv[arg] != NULL) {
+ if (base == NULL) {
+ ret = xmlParseURIReference(uri, argv[arg]);
+ if (ret != 0)
+ printf("%s : error %d\n", argv[arg], ret);
+ else {
+ xmlPrintURI(stdout, uri);
+ printf("\n");
+ }
+ } else {
+ composite = xmlBuildURI((xmlChar *)argv[arg], (xmlChar *) base);
+ if (base == NULL) {
+ } else {
+ printf("%s\n", composite);
+ xmlFree(composite);
+ }
+ }
+ arg++;
+ }
+ }
+ xmlFreeURI(uri);
+ xmlMemoryDump();
+ exit(0);
+}