# HG changeset patch # User Daniel Veillard <veillard@src.gnome.org> # Date 979761898 0 # Wed Jan 17 20:04:58 2001 +0000 # Node ID f5f01a9086ff7d30c31a284cc89f3c82a500ac0e # Parent 034948f3afab893ea8d5a2017a2e87ef10f3a97b - libxslt/transform.c libxslt/xslt.c: avoiding some problems with blank node stripping when not allowed. Daniel diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ -Wed Jan 17 20:15:40 CET 2001 +Wed Jan 17 21:03:01 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr> + + * libxslt/transform.c libxslt/xslt.c: avoiding some problems + with blank node stripping when not allowed. + +Wed Jan 17 20:15:40 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr> * libxslt/transform.c: modified apply-templates processing added select and sort support support. diff --git a/libxslt/transform.c b/libxslt/transform.c --- a/libxslt/transform.c +++ b/libxslt/transform.c @@ -793,18 +793,6 @@ return; } - /* - * Cleanup of ignorable blank node detected - */ - if (delete != NULL) { -#ifdef DEBUG_PROCESS - xsltGenericDebug(xsltGenericDebugContext, - "xsltApplyOneTemplate: removing ignorable blank node\n"); -#endif - xmlUnlinkNode(delete); - xmlFreeNode(delete); - delete = NULL; - } if (IS_XSLT_ELEM(cur)) { if (IS_XSLT_NAME(cur, "apply-templates")) { ctxt->insert = insert; @@ -844,20 +832,16 @@ * For stylesheets, the set of whitespace-preserving * element names consists of just xsl:text. */ - if (!(IS_BLANK_NODE(cur))) { #ifdef DEBUG_PROCESS - xsltGenericDebug(xsltGenericDebugContext, - "xsltApplyOneTemplate: copy text %s\n", cur->content); + xsltGenericDebug(xsltGenericDebugContext, + "xsltApplyOneTemplate: copy text %s\n", cur->content); #endif - copy = xmlCopyNode(cur, 0); - if (copy != NULL) { - xmlAddChild(insert, copy); - } else { - xsltGenericError(xsltGenericErrorContext, - "xsltApplyOneTemplate: text copy failed\n"); - } + copy = xmlCopyNode(cur, 0); + if (copy != NULL) { + xmlAddChild(insert, copy); } else { - delete = cur; + xsltGenericError(xsltGenericErrorContext, + "xsltApplyOneTemplate: text copy failed\n"); } } else if (cur->type == XML_ELEMENT_NODE) { #ifdef DEBUG_PROCESS diff --git a/libxslt/xslt.c b/libxslt/xslt.c --- a/libxslt/xslt.c +++ b/libxslt/xslt.c @@ -491,7 +491,9 @@ } } else if (cur->type == XML_TEXT_NODE) { if (IS_BLANK_NODE(cur)) { - delete = cur; + if (xmlNodeGetSpacePreserve(cur) != 1) { + delete = cur; + } } } else if (cur->type != XML_ELEMENT_NODE) { delete = cur;