summaryrefslogtreecommitdiff
path: root/libexslt
AgeCommit message (Collapse)AuthorFilesLines
2017-12-04Imported Upstream version 1.1.32upstream/1.1.32DongHun Kwak11-24/+25
Change-Id: I03b39e92b2b7898e9a34a1e240722003e7d51cd8 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
2017-10-17Imported Upstream version 1.1.31_rc1upstream/1.1.31_rc1DongHun Kwak1-6/+3
Change-Id: I18a4b3672d7e46c1ead10d746dbdddcc30f298b7 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
2017-10-17Imported Upstream version 1.1.30_rc2upstream/1.1.30_rc2DongHun Kwak1-1/+2
Change-Id: I7163f1e8d20d9963a92dea041decb566792ffad1 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
2017-10-17Imported Upstream version 1.1.30_rc1upstream/1.1.30_rc1DongHun Kwak8-597/+663
Change-Id: Ie087e3508369ac612459f31961addc691f2302c1 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
2016-06-22Imported Upstream version 1.1.29upstream/1.1.29DongHun Kwak8-116/+994
Change-Id: I7d894ba27f8f8e886dbcece3bb3df8e69059cae9 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
2012-11-21add gcrypt library in LIBADD, not LDFLAGS, as recommendedRoumen Petrov1-2/+2
2012-09-12Big space and tabs cleanupDaniel Veillard10-104/+104
Remove spaces followed by tabs, and space and tabs at the end of lines
2012-09-12Add the saxon:systemId extensionMike Hommey1-0/+29
For https://bugzilla.gnome.org/show_bug.cgi?id=519926 Both Xalan and Saxon have a systemId function (in their respective namespaces) to provide the URI of the file that is being transformed. It would be nice to have that function in libxslt1.1 as well, because then DocBook could use it[0]. [0] See line 250 et seq in /usr/share/xml/docbook/stylesheet/nwalsh/common/stripns.xsl
2012-09-06Null-terminate result string of cry:rc4_decryptNick Wellnhofer1-1/+2
For https://bugzilla.gnome.org/show_bug.cgi?id=675917 The string wasn't 0 terminated
2012-09-04EXSLT date normalization fixJames Muscat1-1/+1
https://bugzilla.gnome.org/show_bug.cgi?id=626855 Dates with timezones but no time components are not normalized correctly Using xsltproc v1.1.26: $ xsltproc --version Using libxml 20706, libxslt 10126 and libexslt 815 xsltproc was compiled against libxml 20704, libxslt 10126 and libexslt 815 libxslt 10126 was compiled against libxml 20704 libexslt 815 was compiled against libxml 20704 Dates that have timezone offsets specified but no time components, for example "1970-01-01+01:00", are not normalized correctly; the timezone part is truncated: date:seconds("1970-01-01") = 0 date:seconds("1970-01-01+01:00") = 0 (not -3600 as expected) Alters the conditions under which exsltDateNormalize() returns without normalizing, and adds test cases demonstrating the new behaviour.
2012-09-04Exit after compilation of invalid func:resultNick Wellnhofer1-0/+5
Second part of bug #680920.
2012-09-04Fix for EXSLT func:functionNick Wellnhofer1-2/+2
For https://bugzilla.gnome.org/show_bug.cgi?id=680920 If the first child of a func:function template is xslt:text, it will be removed by xsltParseTemplateContent. So xsltParseTemplateContent should be called before setting func->content to the first child.
2012-09-04Rewrite EXSLT string:replace to be conformantNick Wellnhofer1-95/+227
For https://bugzilla.gnome.org/show_bug.cgi?id=569703 The libexslt implementation of str:replace fails to conform to its specification on several counts: a) the current version returns a string; it's supposed to return a nodeset. b) the current version treats the replacements as strings; it's supposed to treat them as nodes. c) the current version can modify replacement text; it's supposed to only modify text from the original string. d) the current version ignores the requirement to perform substitutions in descending order of search string length. Steps to reproduce: a) the returning of a string rather than a nodeset can be seen by simply inspecting the code. b) the code explicity converts replacement nodes to strings; this can be seen by inspection. d) the failure to perform substitutions in descending order of search string length can be seen in the lack of any sorting in the source code. c) the problem of modifying text not belonging to the original string can be seen in the following stylesheet, which can be simply applied to itself to produce output. <xsl:stylesheet version="1.0" extension-element-prefixes="str exsl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:str="http://exslt.org/strings" > <xsl:variable name="Text"> Price is $1.10 </xsl:variable> <xsl:template match="/"> <xsl:apply-templates select="exsl:node-set($Text)/text()"/> </xsl:template> <xsl:template match="text()"> <xsl:variable name="Replace"> <FromXml> <from>$</from> <from>\</from> </FromXml> <ToTex> <to>\$</to> <to>$\backslash$</to> </ToTex> </xsl:variable> <xsl:value-of select="str:replace(.,exsl:node-set($Replace)/FromXml/from,exsl:node-set($Replace)/ToTex/to)"/> </xsl:template> </xsl:stylesheet> Actual results: The output is: <?xml version="1.0"?> Price is $\backslash$$1.10 Expected results: The output should be: <?xml version="1.0"?> Price is \$1.10 Does this happen every time? yes. Other information: str:replace specification is at: http://www.exslt.org/str/functions/replace/str.replace.html
2012-09-04Remove .cvsignore files which are not needed anymoreDaniel Veillard1-16/+0
2012-08-16FreeBSD portability fixesPedro F. Giffuni1-1/+1
Around behaviour and compile flags for localtime and EXSLT date support
2012-08-16Hardening of code checking node types in EXSLTDaniel Veillard1-2/+4
2012-08-09Various "make distcheck" and other fixesDaniel Richard G1-5/+5
Makefile.am: * Use $(VAR), not @VAR@, as the former is the correct form for AC_SUBST'ed variables in Makefile.am files * Touch these *.xml/*.syms files in the "dist-hook" target to prevent them from being regenerated, because the "make dist" process in itself updates the timestamps of the source files when it copies them into $(distdir) * Add EXTRA_LIBS (-lrt on my system) to xsltConf.sh, as this is a required dependency when client applications link against -lxslt (note that the definition of EXTRA_LIBS has been changed; see below) * Removed MAKEFLAGS+=--silent bits, as this is not compatible with non-GNU Make programs autogen.sh: * Add --warnings=all options to automake and autoconf invocations, to better catch potential problems (most of which I've fixed in this patch) configure.in: * Replaced obsolete macros with their current equivalents; for reference, see http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html (I removed AC_ISC_POSIX outright because the doc states it is no longer useful) * test(1) uses "=" as an operator, not "==" * Fixed quoting on an AC_LINK_IFELSE() invocation to quell Autoconf errors * Don't add redundant libraries to EXTRA_LIBS, because (1) this variable already contains LibXSLT's own additional system-library deps, and is useful in that form, and (2) the LibXML2 deps are already handled by Libtool * Don't delete files in srcdir, and don't create the symlink to "Copyright" there either (I don't understand why this is being symlinked in the first place...) doc/Makefile.am: * Can't use wildcards in EXTRA_DIST, because this breaks dependencies (e.g. you can't "make EXSLT/\*.html"), and they only work properly when building inside the source tree; these have been replaced with their expansions. Other entries have been added here in lieu of the wildcards in the dist-hook target, as well as opportunistic use of the $(*PAGES) variables. * Don't define an "all" target, because this steps on Automake's toes; use "all-local" instead * Define and use an "xsltproc" variable to reference an in-tree-built version of xsltproc, instead of e.g. $(bindir)/xsltproc NOTE: The makefile also uses $(XSLTPROC), which names an external instance of the program found at configure time. Some instances of this could probably be changed to $(xsltproc) to remove the dependency on an existing installed program. * Qualified various filenames as appropriate with $(srcdir) * Use $(XMLLINT) consistently instead of $(bindir)/xmllint * In the "libxslt-api.xml ..." rule, cd into $(srcdir) before invoking apibuild.py as this script has to run in srcdir anyway * In the "clean-local" rule, clear out some additional files to allow "make distcheck" to pass * Eliminated the redundant "maintainer-clean-local" rule * Added a "distclean-local" rule to clear out the build directory in an out-of-source build to allow "make distcheck" to pass * Added a "check-extra-dist" target to make it easier to check that EXTRA_DIST isn't missing anything * Use $(MKDIR_P), not $(mkinstalldirs), as the latter name is obsolete * Use $(VAR) instead of @VAR@ * The "dist-hook" target didn't work (if any generated files were in builddir and not in srcdir), and is no longer needed thanks to the comprehensive EXTRA_DIST variable * Added an "uninstall-local" rule to allow "make distcheck" to pass * Updated the .PHONY target list, removed non-existent targets doc/symbols.xml: * Needed to add this bit to make the generation scripts shut up libexslt/Makefile.am: * AM_CPPFLAGS should be used instead of INCLUDES, as the latter is an obsolete name * Moved $(LIBXML_CFLAGS) to AM_CFLAGS, to segregate CFLAGS from CPPFLAGS (Note that $(CFLAGS) need not be added to AM_CFLAGS, because Automake already references both in the build rules) * Use $(VAR) instead of @VAR@ libxslt.pc.in: * Add EXTRA_LIBS (-lrt on my system), as this is a required dependency when client applications link against -lxslt libxslt/Makefile.am: * AM_CPPFLAGS should be used instead of INCLUDES, as the latter is an obsolete name * Moved $(LIBXML_CFLAGS) to AM_CFLAGS, to segregate CFLAGS from CPPFLAGS * Use $(VAR) instead of @VAR@, $(MKDIR_P) instead of $(mkinstalldirs) * Use $(MKDIR_P), not $(mkinstalldirs), as the latter name is obsolete libxslt/xsltutils.c: * Some systems don't know about CLOCK_MONOTONIC; older Solaris knows about CLOCK_HIGHRES. Some systems, alas, have no usable alternative to CLOCK_REALTIME. python/Makefile.am: * AM_CPPFLAGS should be used instead of INCLUDES, as the latter is an obsolete name * Moved $(LIBXML_CFLAGS) to AM_CFLAGS, to segregate CFLAGS from CPPFLAGS * Because libxslt-py.c is (presumably) supposed to be generated every time at build time, don't bundle it in the dist tarball * Use $(VAR) instead of @VAR@ * libxsltclass.py is a generated file, so it doesn't get qualified with $(srcdir) * Use $(MKDIR_P) instead of (mkinstalldirs) * Added an uninstall-local rule so that "make distcheck" passes * Removed the $(srcdir) qualifications in the GENERATED file list, as these files may exist in builddir * In the gen_prog rule, qualify the script invocation with $(srcdir), and set the SRCDIR environment variable so that the script can find the files it needs when builddir != srcdir * Don't define an "all" target, as this steps on Automake's toes python/generator.py: * Get the source directory from the SRCDIR environment variable, and use it appropriately python/tests/Makefile.am: * Set CLEANFILES instead of defining a "clean" rule * Use $(VAR) instead of @VAR@, $(MKDIR_P) instead of $(mkinstalldirs) tests/*/Makefile.am, tests/exslt/*/Makefile.am: * Need to clean up .memdump files for "make distcheck" to pass * Don't define an "all" target, as this steps on Automake's toes tests/REC/Makefile.am: * Added two missing *.stand.out files to EXTRA_DIST tests/XSLTMark/Makefile.am: * Replaced the GNU-Make-specific %.out bit with a more broadly compatible rule (the "dummy" bit shuts up Automake) * Use "$(xsltproc)" instead of "$(top_builddir)/xsltproc/xsltproc" * Use a less $(MAKE)-heavy invocation in the "tests" target * Replaced a conflicting "clean" target with CLEANFILES * Added a dependency on $(xsltproc) to all the test targets * Added a .PHONY target list tests/docbook/Makefile.am: * Ditched the "echo -n" bit, because it wasn't working as advertised * Create output directories for out-of-source builds * "$(basename $$i)" is a typo in a makefile * Don't embed $(srcdir) in $out/$html/$fo/$msg/$xhtml, so that we can refer to these files in builddir or srcdir * Add a trailing "echo" to complete the "echo -n" * Don't output files unconditionally to srcdir (it may be read-only, for starters) tests/plugins/Makefile.am: * AM_CPPFLAGS should be used instead of INCLUDES, as the latter is an obsolete name (Note that the "$(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)" bit that was here can be dropped entirely, because these already appear in xmlsoft_org_xslt_testplugin_la_CFLAGS) * Use noinst_LTLIBRARIES inside the WITH_MODULES conditional instead of EXTRA_LTLIBRARIES, as this is cleaner (and disallows building the plugin if module support is disabled) * Need to clean up *.res files for "make distcheck" to pass * Use the abs_builddir variable conveniently provided to us by Automake instead of a GNU Make $(shell ...) construct xslt-config.in: * Add EXTRA_LIBS (-lrt on my system), as this is a required dependency when client applications link against -lxslt xsltproc/Makefile.am: * AM_CPPFLAGS should be used instead of INCLUDES, as the latter is an obsolete name * Moved $(LIBXML_CFLAGS) into AM_CFLAGS * Use $(VAR) instead of @VAR@ * Need to clean .memdump for "make distcheck" to pass * Added rules to build lib[e]xslt.la if needed, which allows test makefiles to build xsltproc on the fly even if nothing else has been built already * Create .memdump file in the "tests" target, as it's being grepped afterward
2011-03-07Fix a problem with ESXLT date:add() with Januarymoney_seshu Dronamraju1-1/+1
Also adds a regression test provided by Michael Ludwig <milu71@gmx.de>
2010-10-12Fix a small out of tree compilation issueHao Hu1-1/+1
exsltconfig.h should be addressed differently
2009-09-17Allow use of EXSLT outside XSLTMartin5-0/+308
* libexslt/exslt.h libexslt/date.c libexslt/math.c libexslt/sets.c libexslt/strings.c: provide registration function for an XPath context directly
2009-09-17Detect deep recusion on function callsDaniel Veillard1-0/+12
* libxslt/xsltInternals.h libexslt/functions.c: add a function call counting in the transformation context, and test/increment/decrement in exsltFuncFunctionFunction enter and exit
2009-09-16Add API versioning and various cleanupsDaniel Veillard1-3/+8
* doc/symbols.xml doc/syms.xsl doc/checkapisym.xsl libxslt/libxslt.syms: the new symbol files, checking and stylesheets, based on libxml2 ones * configure.in doc/Makefile.am libxslt/Makefile.am: modifications needed to activate the symbol versioning * doc/libxslt-api.xml doc/libxslt-refs.xml doc/EXSLT/libexslt-api.xml doc/EXSLT/libexslt-refs.xml: regenerated * libexslt/crypto.c libxslt/Makefile.am libxslt/keys.c libxslt/variables.c libxslt/xslt.c libxslt/xsltInternals.h libxslt/xsltlocale.c libxslt/xsltlocale.h: various cleanups
2009-08-21Fix redundant headers in listDaniel Veillard1-2/+0
2009-08-14305913 a serious problem in extensions reentrancyDaniel Veillard1-0/+1
* libexslt/exslt.c libxslt/extensions.c libxslt/extensions.h libxslt/security.c libxslt/transform.c libxslt/xslt.c: extension support use some global variables, make sure there is a Mutex to access and modify them
2009-01-24Fixed indexing error reported by Ron Burk on the mailing list.William M. Brack1-5/+4
* libexslt/strings.c: Fixed indexing error reported by Ron Burk on the mailing list. svn path=/trunk/; revision=1494
2008-11-14applied patch from Roumen Petrov for mingw cross compilation problemsDaniel Veillard1-1/+1
* python/Makefile.am libxslt/Makefile.am configure.in libexslt/Makefile.am: applied patch from Roumen Petrov for mingw cross compilation problems raised by Rich Jones daniel svn path=/trunk/; revision=1493
2008-08-06tests/namespaces/tst7.xsl: fixed typo detected by new libxml2 codeWilliam M. Brack1-2/+2
* Minor cleanup of "typo" and some compilation warnings: tests/namespaces/tst7.xsl: fixed typo detected by new libxml2 code libxslt/keys.c, libxslt/xsltlocale.c, libexslt/date.c: trivial changes for gcc warnings. svn path=/trunk/; revision=1489
2008-08-01fix for CVE-2008-2935 libexslt RC4 encryption/decryption functions DanielDaniel Veillard1-15/+69
* libexslt/crypto.c: fix for CVE-2008-2935 libexslt RC4 encryption/decryption functions Daniel svn path=/trunk/; revision=1487
2008-07-12fixed incorrect argument popping in exsltMathAtan2Function #541965William M. Brack1-4/+4
* libexslt/math.c: fixed incorrect argument popping in exsltMathAtan2Function #541965 svn path=/trunk/; revision=1483
2008-06-13patch from Roumen Petrov fixing include path when compiling with MinGWDaniel Veillard2-2/+2
* libxslt/libxslt.h libexslt/libexslt.h libexslt/exslt.h: patch from Roumen Petrov fixing include path when compiling with MinGW Daniel svn path=/trunk/; revision=1479
2008-04-08add back #452876 patch lost on previous commit, DanielDaniel Veillard1-9/+15
svn path=/trunk/; revision=1466
2008-04-08new version of patch from Peter Pawlowski DanielDaniel Veillard1-49/+35
* libexslt/date.c: new version of patch from Peter Pawlowski Daniel svn path=/trunk/; revision=1465
2008-04-03applied patch from Peter Pawlowski fixing a timezone offset problem, fixesDaniel Veillard1-5/+27
* libexslt/date.c: applied patch from Peter Pawlowski fixing a timezone offset problem, fixes #521680 * libxslt/namespaces.c: a bit of space/tabs cleanup Daniel svn path=/trunk/; revision=1462
2008-03-15*libexslt/functions.c: fixed minor error reported on the mailingWilliam M. Brack1-2/+9
list by Mark Howe, which caused a segfault if func:result was postitioned as top-level element. svn path=/trunk/; revision=1460
2007-11-13After discussion on Bugzilla with Peter Pawlowski, added same code forWilliam M. Brack2-6/+25
* libexslt/common.c, libexslt/dynamic.c: After discussion on Bugzilla with Peter Pawlowski, added same code for preventing deletion of function result during garbage collection (see bug #495995). svn path=/trunk/; revision=1449
2007-11-12Added code to mark the results of str:tokenize and str:split as "functionWilliam M. Brack1-0/+10
* libexslt/strings.c: Added code to mark the results of str:tokenize and str:split as "function result" to avoid garbage-collecting them during global variable initialisation. Should fix bug #495995. svn path=/trunk/; revision=1448
2007-10-10applied patch from Maurice van der Pot to fix EXSLT week-in-year extensonDaniel Veillard1-9/+15
* libexslt/date.c tests/exslt/date/datetime.1.out tests/exslt/date/date.1.out tests/exslt/date/date.1.xml: applied patch from Maurice van der Pot to fix EXSLT week-in-year extenson which was not conforming to the definition. This also changes the output of the tests a bit. Should fix #452876 Daniel svn path=/trunk/; revision=1446
2007-08-23apply patch from Björn Wiberg fixing build on AIX and closing bug #332173Daniel Veillard1-0/+2
* libexslt/date.c: apply patch from Björn Wiberg fixing build on AIX and closing bug #332173 Daniel svn path=/trunk/; revision=1437
2007-05-06fixed two memory leaks, one in exsltMathConstant and one inWilliam M. Brack1-29/+9
* libexslt/math.c: fixed two memory leaks, one in exsltMathConstant and one in exsltMathConstantFunction (bug #436324) svn path=/trunk/; revision=1427
2007-01-17preparing release of 1.1.20 small patch for missing includes on some BSD,Daniel Veillard1-0/+7
* configure.in doc/*: preparing release of 1.1.20 * libexslt/crypto.c: small patch for missing includes on some BSD, fixes #397373 * configure.in: replace == by = in test, raised by Roland Illig, should fix #397371 Daniel svn path=/trunk/; revision=1418
2007-01-11added new function replace from Joel Reed. added new test case for above.William M. Brack1-0/+140
* libexslt/strings.c: added new function replace from Joel Reed. * tests/exslt/Makefile.am, replace.1.xml, replace.1.xsl, replace.1.out: added new test case for above. * libxslt.spec.in: trivial change from Gnome to GNOME * configure.in: trivial change for flags on my compilations * libxslt/documents.c, libxslt/documents.h, libxslt/keys.c, libxslt/keys.h, libxslt/variables.c, libxslt/templates.c, libxslt/transform.c, libxslt/variables.c, libxslt/xslt.c, libxslt/xsltutils.c: fixed some documentation/comments and compilation warnings - no change to logic. * re-generated the documentation. svn path=/trunk/; revision=1413
2006-12-11further enhancement to the original fix for bug #381319 (which was notWilliam M. Brack1-12/+42
* libexslt/functions.c: further enhancement to the original fix for bug #381319 (which was not correct). * tests/exslt/functions: minor enhancement to function.9.xsl; function.10.[xsl,xml,out] added to regression tests to check recursive calls.
2006-12-09changed handling of function params to fix bug #381319 exposedWilliam M. Brack1-45/+41
* libexslt/functions.c: changed handling of function params to fix bug #381319 * libxslt/transform.[ch]: exposed xsltLocalVariablePush and xsltLocalVariablePop as global entries so that they could be used from within libexslt/functions.c * tests/exslt/functions/function.9.[xsl,xml,out] added to regression tests
2006-10-26preparing release of libxslt-1.1.18, this bumps libxml2 requirement toDaniel Veillard1-2/+1
* NEWS configure.in doc//*: preparing release of libxslt-1.1.18, this bumps libxml2 requirement to 1.6.27 * libexslt/date.c libxslt/namespaces.h libxslt/xslt.c libxslt/xsltInternals.h: cosmetic cleanups to restore the API extraction Daniel
2006-10-12fixed end-of-month problem in exsltDateCurrent (#359246)William M. Brack1-1/+5
* libexslt/date.c: fixed end-of-month problem in exsltDateCurrent (#359246)
2006-10-11a missing DESTDIR fix reference to build paths in python module fix theDaniel Veillard1-2/+2
* libxslt/Makefile.am: a missing DESTDIR * python/Makefile.am: fix reference to build paths in python module * libexslt/exsltconfig.h.in libxslt/xsltconfig.h.in: fix the header comments on version values, the 3 are patches from Peter Breitenlohner and should fix #340995 Daniel
2006-08-09Fixed problem with cleanup of RVT's, should clear bug350085; cleaned upWilliam M. Brack1-1/+1
* libxslt/transform.c: Fixed problem with cleanup of RVT's, should clear bug350085; cleaned up most warnings (still a problem in xsltShallowCopyNsNode) * trivial warning cleanup in libxslt/[extensions.c, namespaces.c, xslt.c and xsltInternals.h] and libexslt/functions.c
2006-07-14Committing again, since I forgot to switch from win to linux linebreaks inKasimier T. Buchcik4-1660/+1660
* libxslt/attributes.c libxslt/documents.c libxslt/functions.c libxslt/keys.c libxslt/namespaces.c libxslt/pattern.c libxslt/preproc.c libxslt/templates.c libxslt/templates.h libxslt/transform.c libxslt/variables.c libxslt/xslt.c libxslt/xsltInternals.h libxslt/xsltutils.c libxslt/xsltutils.h libexslt/common.c libexslt/dynamic.c libexslt/functions.c libexslt/strings.c: Committing again, since I forgot to switch from win to linux linebreaks in the files.
2006-07-14Refactored xsltValueOf(). Changed to use xmlXPathCastToString() directly,Kasimier T. Buchcik4-1595/+1660
* libxslt/attributes.c libxslt/documents.c libxslt/functions.c libxslt/keys.c libxslt/namespaces.c libxslt/pattern.c libxslt/preproc.c libxslt/templates.c libxslt/templates.h libxslt/transform.c libxslt/variables.c libxslt/xslt.c libxslt/xsltInternals.h libxslt/xsltutils.c libxslt/xsltutils.h libexslt/common.c libexslt/dynamic.c libexslt/functions.c libexslt/strings.c: Refactored xsltValueOf(). Changed to use xmlXPathCastToString() directly, rather than creating an intermediate object with xmlXPathConvertString(). This now does not add a text-node to the result if the string is empty (this has impact on serialization, since an empty text-node is serialized as <foo></foo>, and now it will be serialized as <foo/>). Refactored other functions in transform.c: Mostly code cleanup/restructuring. Minimized number of function variables for instruction which eat up function stack memory when recursing templates (xsltIf(), xsltChoose(), xsltApplyTemplates(), xsltCallTemplate()). Changed XSLT tests to use xmlXPathCompiledEvalToBoolean(). Implemented redefinition checks at compilation-time and eliminating them at transformation time in the refactored code paths. Introduced the field @currentTemplateRule on xsltTransformContext to reflect the "Current Template Rule" as defined by the spec. NOTE that ctxt->currentTemplateRule and ctxt->templ is not the same; the former is the "Current Template Rule" as defined by the XSLT spec, the latter is simply the template struct being currently processed by Libxslt. Added XML_COMMENT_NODE and XML_CDATA_SECTION_NODE to the macro IS_XSLT_REAL_NODE. Misc code cleanup/restructuring and everything else I already forgot. Refactored lifetime of temporary result tree fragments. Substituted all calls to the now deprecated xsltRegisterTmpRVT() for the new xsltRegisterLocalRVT(). Fragments of xsl:variable and xsl:param are freed when the variable/pram is freed. Fragments created when evaluating a "select" of xsl:varible and xsl:param are also bound to the lifetime of the var/param. EXSLT's func:function now uses the following functions to let take care the transformation's garbage collector of returned tree fragments: xsltExtensionInstructionResultRegister(), xsltExtensionInstructionResultFinalize() Fixes: #339222 - xsl:param at invalid position inside an xsl:template is not catched #346015 - Non-declared caller-parameters are accepted #160400 - Compiles invalid XSLT; unbound variable accepted #308441 - namespaced parameters become unregistered #307103 - problem with proximity position in predicates of match patterns #328218 - problem with exsl:node-set() when converting strings to node sets #318088 - infinite recursion detection #321505 - Multiple contiguous CDATA in output #334493 - "--param" option does not have root context #114377 - weird func:result/xsl:variable/exsl:node-set interaction #150309 - Regression caused by fix for 142768
2006-05-05Next step of refactoring (plus some bug-fixes). For more details seeKasimier T. Buchcik1-6/+25
* libxslt/xsltInternals.h libxslt/attributes.c libxslt/documents.c libxslt/extensions.c libxslt/extensions.h libxslt/functions.c libxslt/imports.c libxslt/keys.c libxslt/preproc.c libxslt/transform.c libxslt/variables.c libxslt/xslt.c libxslt/xsltutils.c libxslt/xsltutils.h libexslt/functions.c: Next step of refactoring (plus some bug-fixes). For more details see #340780.