diff options
author | Daniel Veillard <veillard@src.gnome.org> | 2003-07-28 13:02:24 +0000 |
---|---|---|
committer | Daniel Veillard <veillard@src.gnome.org> | 2003-07-28 13:02:24 +0000 |
commit | d94849b092539a91ac1060c0df03ea79ae1e8d33 (patch) | |
tree | 2b0d18d55f45a336e1c5ed63dccb5ad9c9cc3590 | |
parent | 63f3a47dbff34aa8e2075cd435bc8b19869ab4d1 (diff) | |
download | libxml2-d94849b092539a91ac1060c0df03ea79ae1e8d33.tar.gz |
fixed a Relax-NG compilation/streaming bug introduced when fixing the
* relaxng.c: fixed a Relax-NG compilation/streaming bug introduced
when fixing the previous Relax-NG bugs
* result/relaxng/*: This slightly changes the output messages of
some regression tests.
* configure.in: added support of -with-fexceptions for nested C++
support.
Daniel
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | configure.in | 11 | ||||
-rw-r--r-- | relaxng.c | 47 | ||||
-rw-r--r-- | result/relaxng/tutor10_7_3.err | 2 | ||||
-rw-r--r-- | result/relaxng/tutor10_8_3.err | 2 | ||||
-rw-r--r-- | result/relaxng/tutor3_5_2.err | 6 | ||||
-rw-r--r-- | result/relaxng/tutor9_5_2.err | 4 | ||||
-rw-r--r-- | result/relaxng/tutor9_5_3.err | 2 | ||||
-rw-r--r-- | result/relaxng/tutor9_6_2.err | 2 | ||||
-rw-r--r-- | result/relaxng/tutor9_6_3.err | 2 |
10 files changed, 74 insertions, 13 deletions
@@ -1,3 +1,12 @@ +Sun Jul 27 14:30:56 EDT 2003 Daniel Veillard <daniel@veillard.com> + + * relaxng.c: fixed a Relax-NG compilation/streaming bug introduced + when fixing the previous Relax-NG bugs + * result/relaxng/*: This slightly changes the output messages of + some regression tests. + * configure.in: added support of -with-fexceptions for nested C++ + support. + Thu Jul 24 15:46:02 MDT 2003 John Fleck <jfleck@inkstain.net> * doc/tutorial/apa.html diff --git a/configure.in b/configure.in index 5ced7d76..e45a7c22 100644 --- a/configure.in +++ b/configure.in @@ -244,6 +244,8 @@ dnl XML_CFLAGS="" RDL_LIBS="" +AC_ARG_WITH(fexceptions, +[ --with-fexceptions add GCC flag -fexceptions for C++ exceptions (off)]) dnl dnl Workaround for native compilers dnl HP : http://bugs.gnome.org/db/31/3163.html @@ -259,6 +261,15 @@ if test "${GCC}" != "yes" ; then ;; esac else + if test "$with_fexceptions" = "yes" + then + # + # Not activated by default because this inflates the code size + # Used to allow propagation of C++ exceptions through the library + # + CFLAGS="${CFLAGS} -fexceptions" + fi + CFLAGS="${CFLAGS} -Wall" case "${host}" in alpha*-*-linux* ) @@ -2709,6 +2709,9 @@ xmlRelaxNGIsCompileable(xmlRelaxNGDefinePtr def) { ret = 1; break; case XML_RELAXNG_ELEMENT: + /* + * Check if the element content is compileable + */ if (((def->dflags & IS_NOT_COMPILABLE) == 0) && ((def->dflags & IS_COMPILABLE) == 0)) { xmlRelaxNGDefinePtr list; @@ -2721,12 +2724,31 @@ xmlRelaxNGIsCompileable(xmlRelaxNGDefinePtr def) { } if (ret == 0) def->dflags |= IS_NOT_COMPILABLE; if (ret == 1) def->dflags |= IS_COMPILABLE; +#ifdef DEBUG_COMPILE + if (ret == 1) { + xmlGenericError(xmlGenericErrorContext, + "element content for %s is compilable\n", + def->name); + } else if (ret == 0) { + xmlGenericError(xmlGenericErrorContext, + "element content for %s is not compilable\n", + def->name); + } else { + xmlGenericError(xmlGenericErrorContext, + "Problem in RelaxNGIsCompileable for element %s\n", + def->name); + } +#endif } - if (ret == 1) { - if ((def->nameClass != NULL) || (def->name == NULL)) - ret = 0; - } - break; + /* + * All elements return a compileable status unless they + * are generic like anyName + */ + if ((def->nameClass != NULL) || (def->name == NULL)) + ret = 0; + else + ret = 1; + return(ret); case XML_RELAXNG_REF: case XML_RELAXNG_EXTERNALREF: case XML_RELAXNG_PARENTREF: @@ -2778,6 +2800,21 @@ xmlRelaxNGIsCompileable(xmlRelaxNGDefinePtr def) { } if (ret == 0) def->dflags |= IS_NOT_COMPILABLE; if (ret == 1) def->dflags |= IS_COMPILABLE; +#ifdef DEBUG_COMPILE + if (ret == 1) { + xmlGenericError(xmlGenericErrorContext, + "RelaxNGIsCompileable %s : true\n", + xmlRelaxNGDefName(def)); + } else if (ret == 0) { + xmlGenericError(xmlGenericErrorContext, + "RelaxNGIsCompileable %s : false\n", + xmlRelaxNGDefName(def)); + } else { + xmlGenericError(xmlGenericErrorContext, + "Problem in RelaxNGIsCompileable %s\n", + xmlRelaxNGDefName(def)); + } +#endif return(ret); } diff --git a/result/relaxng/tutor10_7_3.err b/result/relaxng/tutor10_7_3.err index ebbc9aa4..bc3d6acd 100644 --- a/result/relaxng/tutor10_7_3.err +++ b/result/relaxng/tutor10_7_3.err @@ -1,2 +1,2 @@ RNG validity error: file ./test/relaxng/tutor10_7_3.xml line 2 element card -Element addressBook has extra content: card +Element card failed to validate attributes diff --git a/result/relaxng/tutor10_8_3.err b/result/relaxng/tutor10_8_3.err index 34eb5e94..06229bf1 100644 --- a/result/relaxng/tutor10_8_3.err +++ b/result/relaxng/tutor10_8_3.err @@ -1,2 +1,2 @@ RNG validity error: file ./test/relaxng/tutor10_8_3.xml line 2 element card -Element addressBook has extra content: card +Element card failed to validate attributes diff --git a/result/relaxng/tutor3_5_2.err b/result/relaxng/tutor3_5_2.err index ed09a330..80acb18f 100644 --- a/result/relaxng/tutor3_5_2.err +++ b/result/relaxng/tutor3_5_2.err @@ -1,2 +1,4 @@ -RNG validity error: file ./test/relaxng/tutor3_5_2.xml line 2 element card -Element addressBook has extra content: card +RNG validity error: file ./test/relaxng/tutor3_5_2.xml line 2 element email +Expecting element name, got email +RNG validity error: file ./test/relaxng/tutor3_5_2.xml line 2 element email +Element card failed to validate content diff --git a/result/relaxng/tutor9_5_2.err b/result/relaxng/tutor9_5_2.err index 650ca981..ede3b450 100644 --- a/result/relaxng/tutor9_5_2.err +++ b/result/relaxng/tutor9_5_2.err @@ -1,2 +1,4 @@ RNG validity error: file ./test/relaxng/tutor9_5_2.xml line 2 element card -Element addressBook has extra content: card +Invalid sequence in interleave +RNG validity error: file ./test/relaxng/tutor9_5_2.xml line 2 element card +Element card failed to validate attributes diff --git a/result/relaxng/tutor9_5_3.err b/result/relaxng/tutor9_5_3.err index eee06c7c..4566bccb 100644 --- a/result/relaxng/tutor9_5_3.err +++ b/result/relaxng/tutor9_5_3.err @@ -1,2 +1,2 @@ RNG validity error: file ./test/relaxng/tutor9_5_3.xml line 2 element card -Element addressBook has extra content: card +Invalid attribute error for element card diff --git a/result/relaxng/tutor9_6_2.err b/result/relaxng/tutor9_6_2.err index 259cb073..1a10f1b6 100644 --- a/result/relaxng/tutor9_6_2.err +++ b/result/relaxng/tutor9_6_2.err @@ -1,2 +1,2 @@ RNG validity error: file ./test/relaxng/tutor9_6_2.xml line 2 element card -Element addressBook has extra content: card +Element card failed to validate attributes diff --git a/result/relaxng/tutor9_6_3.err b/result/relaxng/tutor9_6_3.err index 2157e524..e92c5f1a 100644 --- a/result/relaxng/tutor9_6_3.err +++ b/result/relaxng/tutor9_6_3.err @@ -1,2 +1,2 @@ RNG validity error: file ./test/relaxng/tutor9_6_3.xml line 2 element card -Element addressBook has extra content: card +Invalid attribute error for element card |