1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-07-29 11:41:22 +03:00

- HTMLparser.c: trying to fix the problem reported by Jonas Borgstrm

- results/HTML/ : a few changes in the output of the HTML tests as
  a result.
- configure.in: tying to fix -liconv where needed
Daniel
This commit is contained in:
Daniel Veillard
2001-05-03 08:27:20 +00:00
parent 2a0d2e6b14
commit a2bc368bc9
8 changed files with 55 additions and 44 deletions

View File

@ -1,3 +1,10 @@
Thu May 3 10:25:19 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* HTMLparser.c: trying to fix the problem reported by Jonas Borgstr<74>m
* results/HTML/ : a few changes in the output of the HTML tests as
a result.
* configure.in: tying to fix -liconv where needed
Wed May 2 19:10:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr> Wed May 2 19:10:26 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* Makefile.am: fixed a stupid error * Makefile.am: fixed a stupid error

View File

@ -564,6 +564,16 @@ static const char *htmlScriptAttributes[] = {
"onselect" "onselect"
}; };
/*
* end tags that imply the end of the inside elements
*/
const char *htmlEndClose[] = {
"head",
"body",
"html",
NULL
};
static const char** htmlStartCloseIndex[100]; static const char** htmlStartCloseIndex[100];
static int htmlStartCloseIndexinitialized = 0; static int htmlStartCloseIndexinitialized = 0;
@ -664,7 +674,7 @@ static void
htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar *newtag) { htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
htmlElemDescPtr info; htmlElemDescPtr info;
xmlChar *oldname; xmlChar *oldname;
int i; int i, endCloses = 0;
#ifdef DEBUG #ifdef DEBUG
xmlGenericError(xmlGenericErrorContext,"Close of %s stack: %d elements\n", newtag, ctxt->nameNr); xmlGenericError(xmlGenericErrorContext,"Close of %s stack: %d elements\n", newtag, ctxt->nameNr);
@ -676,6 +686,11 @@ htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
if (xmlStrEqual(newtag, ctxt->nameTab[i])) break; if (xmlStrEqual(newtag, ctxt->nameTab[i])) break;
} }
if (i < 0) return; if (i < 0) return;
for (i = 0; (htmlEndClose[i] != NULL);i++)
if (xmlStrEqual(newtag, (const xmlChar *) htmlEndClose[i])) {
endCloses = 1;
break;
}
while (!xmlStrEqual(newtag, ctxt->name)) { while (!xmlStrEqual(newtag, ctxt->name)) {
info = htmlTagLookup(ctxt->name); info = htmlTagLookup(ctxt->name);
@ -692,7 +707,7 @@ htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
"Opening and ending tag mismatch: %s and %s\n", "Opening and ending tag mismatch: %s and %s\n",
newtag, ctxt->name); newtag, ctxt->name);
ctxt->wellFormed = 0; ctxt->wellFormed = 0;
} else { } else if (endCloses == 0) {
return; return;
} }
if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL)) if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))

40
aclocal.m4 vendored
View File

@ -620,31 +620,35 @@ esac
]) ])
# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
# the libltdl convenience library, adds --enable-ltdl-convenience to # the libltdl convenience library and INCLTDL to the include flags for
# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor # the libltdl header and adds --enable-ltdl-convenience to the
# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed # configure arguments. Note that LIBLTDL and INCLTDL are not
# to be `${top_builddir}/libltdl'. Make sure you start DIR with # AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
# '${top_builddir}/' (note the single quotes!) if your package is not # provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
# flat, and, if you're not using automake, define top_builddir as # with '${top_builddir}/' and INCLTDL will be prefixed with
# appropriate in the Makefiles. # '${top_srcdir}/' (note the single quotes!). If your package is not
# flat and you're not using automake, define top_builddir and
# top_srcdir appropriately in the Makefiles.
AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
case "$enable_ltdl_convenience" in case "$enable_ltdl_convenience" in
no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
"") enable_ltdl_convenience=yes "") enable_ltdl_convenience=yes
ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
esac esac
LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
]) ])
# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
# the libltdl installable library, and adds --enable-ltdl-install to # the libltdl installable library and INCLTDL to the include flags for
# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor # the libltdl header and adds --enable-ltdl-install to the configure
# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed # arguments. Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
# to be `${top_builddir}/libltdl'. Make sure you start DIR with # AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
# '${top_builddir}/' (note the single quotes!) if your package is not # libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
# flat, and, if you're not using automake, define top_builddir as # be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
# appropriate in the Makefiles. # with '${top_srcdir}/' (note the single quotes!). If your package is
# not flat and you're not using automake, define top_builddir and
# top_srcdir appropriately in the Makefiles.
# In the future, this macro may have to be called after AC_PROG_LIBTOOL. # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_CHECK_LIB(ltdl, main, AC_CHECK_LIB(ltdl, main,
@ -657,8 +661,8 @@ AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
]) ])
if test x"$enable_ltdl_install" = x"yes"; then if test x"$enable_ltdl_install" = x"yes"; then
ac_configure_args="$ac_configure_args --enable-ltdl-install" ac_configure_args="$ac_configure_args --enable-ltdl-install"
LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
else else
ac_configure_args="$ac_configure_args --enable-ltdl-install=no" ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
LIBLTDL="-lltdl" LIBLTDL="-lltdl"

View File

@ -359,7 +359,8 @@ if test "$with_iconv" = "no" ; then
WITH_ICONV=0 WITH_ICONV=0
else else
AC_CHECK_HEADER(iconv.h, AC_CHECK_HEADER(iconv.h,
AC_CHECK_FUNC(iconv, , AC_CHECK_LIB(iconv, iconv))) AC_CHECK_FUNC(iconv, ,
AC_CHECK_LIB(iconv, iconv, XML_LIBS="$XML_LIBS -liconv")))
if test "$have_iconv" != "" ; then if test "$have_iconv" != "" ; then
echo Iconv support not found echo Iconv support not found
WITH_ICONV=0 WITH_ICONV=0

View File

@ -91,9 +91,3 @@ HEIGHT="70">&nbsp;</TD> </TR></TABLE>
./test/HTML/doc3.htm:844: error: Opening and ending tag mismatch: div and tbody ./test/HTML/doc3.htm:844: error: Opening and ending tag mismatch: div and tbody
,arial">Site design by Tim Brinkley</FONT> </TD> </TR> --></TBODY></TABLE></DI ,arial">Site design by Tim Brinkley</FONT> </TD> </TR> --></TBODY></TABLE></DI
^ ^
./test/HTML/doc3.htm:846: error: Opening and ending tag mismatch: body and tbody
</BODY></HTML>
^
./test/HTML/doc3.htm:846: error: Opening and ending tag mismatch: html and tbody
</BODY></HTML>
^

View File

@ -2872,13 +2872,11 @@ SAX.cdata( window.open=NS_ActualOpen; , 28)
SAX.startElement(script) SAX.startElement(script)
SAX.cdata( window.open=NS_ActualOpen; , 28) SAX.cdata( window.open=NS_ActualOpen; , 28)
SAX.endElement(script) SAX.endElement(script)
SAX.characters(
, 2)
SAX.error: Opening and ending tag mismatch: body and tbody
SAX.error: Opening and ending tag mismatch: html and tbody
SAX.characters( SAX.characters(
, 2) , 2)
SAX.endElement(tbody) SAX.endElement(tbody)
SAX.endElement(table) SAX.endElement(table)
SAX.endElement(div) SAX.endElement(div)
SAX.endElement(body)
SAX.endElement(html)
SAX.ignorableWhitespace( SAX.ignorableWhitespace(

View File

@ -259,9 +259,3 @@ com&BANNER=Sprint" style="text-decoration:none"><font color="#000000">Sprint</a
./test/HTML/wired.html:430: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:430: error: htmlParseEntityRef: expecting ';'
href="http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&lpv=1">Lycos</ href="http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&lpv=1">Lycos</
^ ^
./test/HTML/wired.html:512: error: Opening and ending tag mismatch: body and td
</body>
^
./test/HTML/wired.html:513: error: Opening and ending tag mismatch: html and td
</html>
^

View File

@ -2836,13 +2836,6 @@ SAX.startElement(br)
SAX.endElement(br) SAX.endElement(br)
SAX.characters( SAX.characters(
, 1) , 1)
SAX.error: Opening and ending tag mismatch: body and td
SAX.characters(
, 1)
SAX.error: Opening and ending tag mismatch: html and td
SAX.ignorableWhitespace(
, 2)
SAX.endElement(td) SAX.endElement(td)
SAX.endElement(tr) SAX.endElement(tr)
SAX.endElement(table) SAX.endElement(table)
@ -2850,5 +2843,10 @@ SAX.endElement(td)
SAX.endElement(tr) SAX.endElement(tr)
SAX.endElement(table) SAX.endElement(table)
SAX.endElement(body) SAX.endElement(body)
SAX.ignorableWhitespace(
, 1)
SAX.endElement(html) SAX.endElement(html)
SAX.ignorableWhitespace(
, 2)
SAX.endDocument() SAX.endDocument()