Patch for HP compilers and patch to xmllint.c from Sven Heinicke, Daniel
diff --git a/ChangeLog b/ChangeLog
index 13df08f..9babfb0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Fri Aug 4 11:21:50 PDT 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+ * configure.in: patch for HP compiler
+
+2000-08-04 Sven Heinicke <sven@zen.org>
+
+ * xmllint.c: Was coredumping sometimes when the file given didn't
+ exist.
+
Sat Jul 22 05:59:05 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
* parser.c xmlIO.[ch]: fixed the problem of encoding support
diff --git a/configure.in b/configure.in
index 86565cd..e9c816d 100644
--- a/configure.in
+++ b/configure.in
@@ -126,7 +126,7 @@
if test "${CC}" != "gcc" ; then
case "${host}" in
*-*-hpux* )
- CFLAGS="${CFLAGS} -Wp,-H16800 -Ae"
+ CFLAGS="${CFLAGS} -Wp,-H30000 -Ae"
;;
esac
fi
diff --git a/xmllint.c b/xmllint.c
index 18805f7..d661df9 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -426,30 +426,39 @@
xmlSAXHandler silent, *old;
ctxt = xmlCreateFileParserCtxt(filename);
- memcpy(&silent, ctxt->sax, sizeof(silent));
- old = ctxt->sax;
- silent.error = xmlHTMLError;
- if (xmlGetWarningsDefaultValue)
+
+ if (ctxt == NULL) {
+ /* If xmlCreateFileParseCtxt() return NULL something
+ strange happened so we don't want to do anything. Do
+ we want to print an error message here?
+ <sven@zen.org> */
+ doc == NULL;
+ } else {
+ memcpy(&silent, ctxt->sax, sizeof(silent));
+ old = ctxt->sax;
+ silent.error = xmlHTMLError;
+ if (xmlGetWarningsDefaultValue)
silent.warning = xmlHTMLWarning;
- else
+ else
silent.warning = NULL;
- silent.fatalError = xmlHTMLError;
- ctxt->sax = &silent;
- ctxt->vctxt.error = xmlHTMLValidityError;
- if (xmlGetWarningsDefaultValue)
+ silent.fatalError = xmlHTMLError;
+ ctxt->sax = &silent;
+ ctxt->vctxt.error = xmlHTMLValidityError;
+ if (xmlGetWarningsDefaultValue)
ctxt->vctxt.warning = xmlHTMLValidityWarning;
- else
+ else
ctxt->vctxt.warning = NULL;
- xmlParseDocument(ctxt);
+ xmlParseDocument(ctxt);
- ret = ctxt->wellFormed;
- doc = ctxt->myDoc;
- ctxt->sax = old;
- xmlFreeParserCtxt(ctxt);
- if (!ret) {
+ ret = ctxt->wellFormed;
+ doc = ctxt->myDoc;
+ ctxt->sax = old;
+ xmlFreeParserCtxt(ctxt);
+ if (!ret) {
xmlFreeDoc(doc);
doc = NULL;
+ }
}
#ifdef HAVE_SYS_MMAN_H
} else if (memory) {
@@ -473,6 +482,14 @@
}
#endif
+ /*
+ * If we don't have a document we might as well give up. Do we
+ * want an error message here? <sven@zen.org> */
+ if (doc == NULL)
+ {
+ return;
+ }
+
#ifdef LIBXML_DEBUG_ENABLED
/*
* shell interraction
@@ -703,3 +720,4 @@
return(0);
}
+