1. 25 Feb, 2016 1 commit
  2. 13 Dec, 2015 1 commit
  3. 04 Oct, 2014 1 commit
  4. 28 Sep, 2014 1 commit
  5. 05 Aug, 2013 1 commit
  6. 04 Aug, 2013 1 commit
  7. 01 Jul, 2013 1 commit
    • Nick Wellnhofer's avatar
      EXSLT function str:replace() is broken as-is · ae49d7a7
      Nick Wellnhofer authored
      the str:replace() function is no longer usable without a transform
      context. I take it from the bug report that it is not supposed to be used
      from plain XPath but only from XSLT according to the EXSLT specification.
      
      However, the previous implementation used to work in XPath and is still
      registered on an xmlXPathContext by the exsltStrXpathCtxtRegister()
      function. When called from plain XPath, it results in a memory error in
      line 526 (exsltStrReturnString()) of strings.c because xsltCreateRVT()
      returns NULL as an error indicator due to a NULL transform context being
      passed in, which was the return value from xsltXPathGetTransformContext() a
      bit further up (and the code doesn't validate that).
      
      Since fixing the function looks impossible, best is to remove it.
      ae49d7a7
  8. 21 Nov, 2012 1 commit
  9. 12 Sep, 2012 2 commits
  10. 06 Sep, 2012 1 commit
  11. 04 Sep, 2012 5 commits
    • James Muscat's avatar
      EXSLT date normalization fix · 4ad8f121
      James Muscat authored
      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.
      4ad8f121
    • Nick Wellnhofer's avatar
      Exit after compilation of invalid func:result · aebfee35
      Nick Wellnhofer authored
      Second part of bug #680920.
      aebfee35
    • Nick Wellnhofer's avatar
      Fix for EXSLT func:function · 14ee81b0
      Nick Wellnhofer authored
      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.
      14ee81b0
    • Nick Wellnhofer's avatar
      Rewrite EXSLT string:replace to be conformant · 0602c535
      Nick Wellnhofer authored
      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
      0602c535
    • Daniel Veillard's avatar
      39b0c27a
  12. 16 Aug, 2012 2 commits
  13. 09 Aug, 2012 1 commit
    • Daniel Richard G's avatar
      Various "make distcheck" and other fixes · a2cd8a03
      Daniel Richard G authored
      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
      a2cd8a03
  14. 07 Mar, 2011 1 commit
  15. 12 Oct, 2010 1 commit
  16. 17 Sep, 2009 2 commits
    • Martin's avatar
      Allow use of EXSLT outside XSLT · ce169a52
      Martin authored
      * libexslt/exslt.h libexslt/date.c libexslt/math.c libexslt/sets.c
        libexslt/strings.c: provide registration function for an XPath
        context directly
      ce169a52
    • Daniel Veillard's avatar
      Detect deep recusion on function calls · 3058d809
      Daniel Veillard authored
      * libxslt/xsltInternals.h libexslt/functions.c: add a function call
        counting in the transformation context, and test/increment/decrement
        in exsltFuncFunctionFunction enter and exit
      3058d809
  17. 16 Sep, 2009 1 commit
    • Daniel Veillard's avatar
      Add API versioning and various cleanups · 482e7b7e
      Daniel Veillard authored
      * 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
      482e7b7e
  18. 21 Aug, 2009 1 commit
  19. 14 Aug, 2009 1 commit
    • Daniel Veillard's avatar
      305913 a serious problem in extensions reentrancy · b1c52a88
      Daniel Veillard authored
      * 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
      b1c52a88
  20. 24 Jan, 2009 1 commit
  21. 14 Nov, 2008 1 commit
  22. 06 Aug, 2008 1 commit
  23. 01 Aug, 2008 1 commit
  24. 12 Jul, 2008 1 commit
  25. 13 Jun, 2008 1 commit
  26. 08 Apr, 2008 2 commits
  27. 03 Apr, 2008 1 commit
  28. 15 Mar, 2008 1 commit
  29. 13 Nov, 2007 1 commit
  30. 12 Nov, 2007 1 commit
  31. 10 Oct, 2007 1 commit
    • Daniel Veillard's avatar
      applied patch from Maurice van der Pot to fix EXSLT week-in-year extenson · c21fe206
      Daniel Veillard authored
      * 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
      c21fe206
  32. 23 Aug, 2007 1 commit