From: William M. Brack Date: Thu, 11 Jan 2007 03:13:13 +0000 (+0000) Subject: added new function replace from Joel Reed. added new test case for above. X-Git-Tag: v1.1.28~202 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=40e7c29b35c975e4b7ff6275a9f8aaca24a4a86c;p=platform%2Fupstream%2Flibxslt.git added new function replace from Joel Reed. added new test case for above. * 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 --- diff --git a/ChangeLog b/ChangeLog index bb2be1a..4786125 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +Wed Jan 10 19:13:08 PST 2007 William Brack + + * 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. + Wed Jan 3 16:46:05 CET 2007 Daniel Veillard * configure.in: adapt the extra versioning code to SVN diff --git a/NEWS b/NEWS index 06fc688..24933fc 100644 --- a/NEWS +++ b/NEWS @@ -70,7 +70,7 @@ http://cvs.gnome.org/viewcvs/libxslt/ - bug fixes: negative number formatting (William Brack), number formatting per mille definition (William Brack), XInclude default values (William), text copy bugs (William), bug related to xmlXPathContext size, - reuse libxml2 memory management for text nodes, dictionnary text bug, + reuse libxml2 memory management for text nodes, dictionary text bug, forbid variables in match (needs libxml2-2.6.21) - improvements: EXSLT dyn:map (Mark Vakoc), - documentation: EXSLT date and time functions namespace in man (Jonathan @@ -85,7 +85,7 @@ http://cvs.gnome.org/viewcvs/libxslt/ select, xinclude and document() problem, build outside of source tree (Mike Castle) - improvement: added a --nodict mode to xsltproc to check problems for - docuemtns without dictionnaries + docuemtns without dictionaries 1.1.13: Mar 13 2005: @@ -99,7 +99,7 @@ http://cvs.gnome.org/viewcvs/libxslt/ (Aleksey Gurtovoy), pattern expression fixes (William Brack), out of memory detection misses (William), parserOptions propagation (William), exclude-result-prefixes fix (William), // patten fix (William). - - extensions: module support (Joel Reed), dictionnary based speedups + - extensions: module support (Joel Reed), dictionary based speedups trying to get rid of xmlStrEqual as much as possible. - documentation: added Wiki (Joel Reed) @@ -172,14 +172,14 @@ http://cvs.gnome.org/viewcvs/libxslt/ 1.1.5: Mar 23 2004: - - performance: use dictionnary lookup for variables + - performance: use dictionary lookup for variables - remove use of _private from source documents - cleanup of "make tests" output - bugfixes: AVT in local variables, use localtime_r to avoid thread troubles (William), dictionary handling bug (William), limited number of stubstitutions in AVT (William), tokenize fix for UTF-8 (William), superfluous namespace (William), xsltproc error code on - halt, OpenVMS fix, dictionnary reference counting + halt, OpenVMS fix, dictionary reference counting change. @@ -192,7 +192,7 @@ http://cvs.gnome.org/viewcvs/libxslt/ 1.1.3: Feb 16 2004: - Rewrote the Attribute Value Template code, new XPath compilation - interfaces, dictionnary reuses for XSLT with potential for serious + interfaces, dictionary reuses for XSLT with potential for serious performance improvements. - bug fixes: portability (William Brack), key() in node-set() results (William), comment before doctype (William), math and node-set() problems diff --git a/configure.in b/configure.in index 0efadd4..b8629ba 100644 --- a/configure.in +++ b/configure.in @@ -283,7 +283,7 @@ dnl dnl Debug for DV (-Wunreachable-code) dnl if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XSLT" ]] || \ - [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomecvs/xsltest" ]] + [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomesvn/libxslt" ]] then if test "${with_mem_debug}" = "" ; then diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html index 2f7ddea..c2ce53b 100644 --- a/doc/APIchunk0.html +++ b/doc/APIchunk0.html @@ -14,8 +14,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -110,7 +110,6 @@ A:link, A:visited, A:active { text-decoration: underline }
DecimalFormat
xsltFormatNumberConversion
Display
xsltPrintErrorContext
xsltTransformError
-
Does
xsltTemplateProcess
Don
xsltAttrListTemplateProcess
xsltTemplateProcess
Drop
xslDropCall
@@ -220,6 +219,7 @@ A:link, A:visited, A:active { text-decoration: underline }
Internal
XSLT_FAST_IF
XSLT_REFACTORED_KEYCOMP
XSLT_REFACTORED_VARS
+XSLT_REFACTORED_XPATHCOMP
xsltFreeRVTs

Letter J:

JDK
xsltFormatNumberConversion
James
XSLT_XT_NAMESPACE
@@ -229,8 +229,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk1.html b/doc/APIchunk1.html index 79bae60..49e70a0 100644 --- a/doc/APIchunk1.html +++ b/doc/APIchunk1.html @@ -14,8 +14,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -68,6 +68,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltApplyStylesheet
xsltGetQNameURI
xsltInitCtxtKeys
+xsltLocalVariablePush
xsltRunStylesheet
xsltRunStylesheetUser
Name
xsltEvalStaticAttrValueTemplate
@@ -106,6 +107,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltParseSequenceConstructor
Pattern
xsltCompilePattern
Per
_xsltTransformContext
+
Places
xsltLocalVariablePush
+
Pops
xsltLocalVariablePop
Pre
_xsltStylePreComp
xsltDocumentComp
Precompile
xsltCompileAttr
@@ -185,6 +188,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltRegisterLocalRVT
xsltRegisterTestModule
xsltRegisterTmpRVT
+
Resets
xsltPointerListClear
Result
_xsltStackElem
_xsltStylesheet
_xsltTransformContext
@@ -249,8 +253,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html index b2f4974..dcca650 100644 --- a/doc/APIchunk2.html +++ b/doc/APIchunk2.html @@ -14,8 +14,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -158,6 +158,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltFreeStyleDocuments
xsltFreeStylePreComps
xsltInitCtxtKeys
+xsltLocalVariablePop
xsltRegisterAllElement
xsltRegisterAllFunctions
allocated
_xsltTransformContext
@@ -169,6 +170,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltGetCNsProp
xsltNewStylesheet
xsltNewTransformContext
+xsltPointerListClear
xsltSaveResultToString
xsltSplitQName
allow
xsltApplyStylesheetUser
@@ -192,7 +194,6 @@ A:link, A:visited, A:active { text-decoration: underline }
always
xsltApplyOneTemplate
xsltSecurityAllow
xsltSecurityForbid
-xsltTemplateProcess
analyzes
xsltGetQNameURI
anchor
xsltGetSpecialNamespace
anchored
xsltGetCNsProp
@@ -205,6 +206,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltFormatNumberConversion
xsltGetPlainNamespace
xsltInitElemPreComp
+xsltLocalVariablePush
xsltRunStylesheet
xsltRunStylesheetUser
anymore
xsltApplyOneTemplate
@@ -271,6 +273,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltDefaultSortFunction
xsltDoSortFunction
xsltEvalUserParams
+xsltPointerListClear
xsltRunStylesheet
xsltRunStylesheetUser
xsltVariableLookup
@@ -310,8 +313,7 @@ A:link, A:visited, A:active { text-decoration: underline }
attr
xsltGetSpecialNamespace
attribute-set
xsltParseStylesheetAttributeSet
attribute-sets
xsltApplyAttributeSet
-
attributes
IS_XSLT_ATTR_FAST
-xsltAttrListTemplateProcess
+
attributes
xsltAttrListTemplateProcess
xsltNamespaceAlias
attrubute
xsltCompileAttr
automatically
xsltCopyNamespaceList
@@ -329,8 +331,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk3.html b/doc/APIchunk3.html index 1c11d98..8210253 100644 --- a/doc/APIchunk3.html +++ b/doc/APIchunk3.html @@ -14,8 +14,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -48,6 +48,7 @@ A:link, A:visited, A:active { text-decoration: underline }
between
_xsltStylesheet
_xsltTransformContext
xsltResolveStylesheetAttributeSet
+
bit
NODE_IS_KEYED
blank
xsltParseTemplateContent
blanks
xsltIsBlank
block
xsltFreeSecurityPrefs
@@ -91,6 +92,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltGetQNameURI2
xsltLoadStylesheetPI
xsltParseStylesheetCallerParam
+xsltPointerListClear
xsltQuoteUserParams
xsltSort
xsltXPathFunctionLookup
@@ -144,6 +146,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltGetPlainNamespace
xsltGetProfileInformation
xsltInitElemPreComp
+xsltLocalVariablePush
xsltParseStylesheetCallerParam
xsltQuoteOneUserParam
xsltRegisterExtElement
@@ -204,6 +207,10 @@ A:link, A:visited, A:active { text-decoration: underline }
check
CHECK_STOPPED
CHECK_STOPPED0
CHECK_STOPPEDE
+IS_XSLT_ATTR_FAST
+IS_XSLT_ELEM_FAST
+NODE_IS_KEYED
+XSLT_HAS_INTERNAL_NSMAP
XSLT_IS_TEXT_NODE
xsltSecurityCheck
checking
xsltGetSecurityPrefs
@@ -213,6 +220,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltCopyTextString
clash
xsltGetSpecialNamespace
class:
xsltFormatNumberConversion
+
cleared
xsltPointerListClear
close
xsltSaveResultToFd
xsltSaveResultToFile
coalescing
_xsltTransformContext
@@ -236,7 +244,8 @@ A:link, A:visited, A:active { text-decoration: underline }
comparison
_xsltPrincipalStylesheetData
xsltFindTemplate
compatibility
XSLT_ITEM_COMPATIBILITY_FIELDS
-
compilation
_xsltCompilerCtxt
+
compilation
XSLT_REFACTORED_XPATHCOMP
+_xsltCompilerCtxt
_xsltStylesheet
xsltDocLoaderFunc
xsltParseAnyXSLTElem
@@ -250,12 +259,17 @@ A:link, A:visited, A:active { text-decoration: underline } _xsltStackElem
_xsltStylesheet
xsltApplyImports
+xsltApplyTemplates
+xsltCallTemplate
xsltChoose
xsltEvalXPathPredicate
xsltEvalXPathString
xsltEvalXPathStringNs
+xsltForEach
+xsltIf
xsltNormalizeCompSteps
xsltTransformFunction
+
compiler
XSLT_CCTXT
compiles
xsltParseAnyXSLTElem
compiling
xsltAllocateExtra
completed
xsltGetProfileInformation
@@ -270,6 +284,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltApplyOneTemplate
xsltAttrTemplateValueProcess
xsltAttrTemplateValueProcessNode
+xsltCopy
xsltEvalAVT
xsltEvalAttrValueTemplate
xsltEvalTemplateString
@@ -301,6 +316,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltParseAnyXSLTElem
xsltParseSequenceConstructor
xsltParseTemplateContent
+xsltPointerListClear
xsltPointerListFree
content-model
xsltParseTemplateContent
contexts
_xsltCompilerCtxt
@@ -342,8 +358,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html index 2edd452..f5c8853 100644 --- a/doc/APIchunk4.html +++ b/doc/APIchunk4.html @@ -14,8 +14,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -96,6 +96,7 @@ A:link, A:visited, A:active { text-decoration: underline } XSLT_FAST_IF
XSLT_REFACTORED_KEYCOMP
XSLT_REFACTORED_VARS
+XSLT_REFACTORED_XPATHCOMP
XSLT_RUNTIME_EXTRA
defined
_xsltTransformContext
xslAddCall
@@ -107,6 +108,7 @@ A:link, A:visited, A:active { text-decoration: underline }
depth
_xsltCompilerCtxt
_xsltStackElem
_xsltVarInfo
+xsltLocalVariablePop
derived
xsltInitElemPreComp
description
xsltEvalOneUserParam
descriptions
_xsltStylesheet
@@ -114,15 +116,14 @@ A:link, A:visited, A:active { text-decoration: underline }
desired
xsltFindDocument
xsltGetExtInfo
details
xsltEvalOneUserParam
-
detect
IS_XSLT_ATTR_FAST
detected
XSLT_STRANGE
dict
xsltFindTemplate
-
dictionary
xsltGetQNameURI2
-
dictionary:
_xsltStylesheet
-
dictionnary
xsltDocLoaderFunc
+
dictionary
xsltDocLoaderFunc
xsltGetCNsProp
+xsltGetQNameURI2
xsltSplitQName
-
dictionnary:
_xsltTransformContext
+
dictionary:
_xsltStylesheet
+_xsltTransformContext
different
XSLT_REGISTER_FUNCTION_LOOKUP
XSLT_REGISTER_VARIABLE_LOOKUP
xsltGetCNsProp
@@ -155,6 +156,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltEvalStaticAttrValueTemplate
xsltGetCNsProp
xsltGetNsProp
+xsltPointerListClear
xsltPointerListFree
xsltSaveResultToFd
xsltSaveResultToFile
@@ -197,6 +199,7 @@ A:link, A:visited, A:active { text-decoration: underline }
enable
XSLT_FAST_IF
XSLT_REFACTORED_KEYCOMP
XSLT_REFACTORED_VARS
+XSLT_REFACTORED_XPATHCOMP
enabled
_xsltCompilerNodeInfo
encoded
xsltGetUTF8Char
encoding
_xsltStylesheet
@@ -253,6 +256,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltStyleStylesheetLevelGetExtData
existent
xsltCopyTextString
existing
xsltInitElemPreComp
+
exists
xsltParseStylesheetImportedDoc
exit
xsltRegisterTmpRVT
exiting
xsltApplyOneTemplate
exits
_xsltTransformContext
@@ -275,7 +279,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltEvalXPathString
xsltEvalXPathStringNs
xsltXPathCompile
-
expressions
_xsltStylesheet
+
expressions
XSLT_REFACTORED_XPATHCOMP
+_xsltStylesheet
xsltEvalAttrValueTemplate
xsltEvalStaticAttrValueTemplate
xsltQuoteUserParams
@@ -314,8 +319,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html index 5e39942..a91cce0 100644 --- a/doc/APIchunk5.html +++ b/doc/APIchunk5.html @@ -14,8 +14,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -57,7 +57,8 @@ A:link, A:visited, A:active { text-decoration: underline }
find
xsltDecimalFormatGetByName
xsltFindDocument
fine
xsltParseAnyXSLTElem
-
first
xsltCopyNamespaceList
+
first
xsltAttrListTemplateProcess
+xsltCopyNamespaceList
xsltSetGenericDebugFunc
xsltSetGenericErrorFunc
fixup
xsltGetNamespace
@@ -127,12 +128,14 @@ A:link, A:visited, A:active { text-decoration: underline } xsltFreeSecurityPrefs
xsltGetNsProp
xsltGetProfileInformation
+xsltPointerListClear
xsltPointerListFree
xsltXPathCompile
freed
_xsltTransformContext
xsltDocLoaderFunc
xsltGetQNameURI
xsltLoadStylesheetPI
+xsltPointerListFree
xsltRegisterLocalRVT
xsltRegisterPersistRVT
xsltRegisterTmpRVT
@@ -150,6 +153,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltGetKey
xsltGetUTF8Char
xsltLoadStylesheetPI
+xsltLocalVariablePop
xsltParseSequenceConstructor
xsltParseStylesheetCallerParam
xsltParseTemplateContent
@@ -193,7 +197,9 @@ A:link, A:visited, A:active { text-decoration: underline } xsltRunStylesheetUser
xsltSaveResultToString
generates
xsltCompilePattern
-
get
_xsltPrincipalStylesheetData
+
get
XSLT_CCTXT
+XSLT_GET_INTERNAL_NSMAP
+_xsltPrincipalStylesheetData
_xsltStylesheet
xsltAttrListTemplateProcess
xsltDoSortFunction
@@ -214,6 +220,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltGetNamespace
xsltGetSpecialNamespace
xsltLoadStylesheetPI
+xsltLocalVariablePop
xsltProfileStylesheet
xsltRegisterExtPrefix
xsltSetTransformErrorFunc
@@ -247,8 +254,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk6.html b/doc/APIchunk6.html index 5009211..56b1d17 100644 --- a/doc/APIchunk6.html +++ b/doc/APIchunk6.html @@ -7,15 +7,15 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } - API Alphabetic Index h-k for libxslt
Action against software patentsGNOME2 LogoW3C logoRed Hat Logo
Made with Libxslt Logo

The XSLT C library for GNOME

API Alphabetic Index h-k for libxslt

Main Menu
Related links
  • Tutorial, + API Alphabetic Index h-i for libxslt
    Action against software patentsGNOME2 LogoW3C logoRed Hat Logo
    Made with Libxslt Logo

    The XSLT C library for GNOME

    API Alphabetic Index h-i for libxslt

    Main Menu
    Related links
    API Indexes

    A-J K-S T-a b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -118,13 +118,23 @@ A:link, A:visited, A:active { text-decoration: underline } xsltAllocateExtra
    xsltAllocateExtraCtxt
    xsltAttribute
    +xsltCallTemplate
    xsltChoose
    xsltComment
    +xsltCopy
    +xsltCopyOf
    +xsltDocumentElem
    +xsltElement
    +xsltForEach
    +xsltIf
    xsltInitCtxtKey
    +xsltNumber
    xsltParseStylesheetOutput
    +xsltProcessingInstruction
    xsltSort
    xsltText
    xsltTransformFunction
    +xsltValueOf
    informations
    _xsltStylesheet
    _xsltTemplate
    _xsltTransformContext
    @@ -140,6 +150,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltGetQNameURI
    xsltGetQNameURI2
    xsltPointerListAddSize
    +xsltPointerListCreate
    initialization
    xsltExtInitFunction
    xsltRegisterExtModule
    xsltRegisterExtModuleFull
    @@ -157,6 +168,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltNewTransformContext
    xsltTransformFunction
    insertion
    _xsltTransformContext
    +
    inspected
    xsltExtensionInstructionResultRegister
    instances
    xsltFormatNumberConversion
    instantiated
    xsltRegisterTmpRVT
    instead
    xsltRegisterExtras
    @@ -184,6 +196,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltExtensionInstructionResultFinalize
    xsltGetNamespace
    xsltGetPlainNamespace
    +xsltLocalVariablePush
    xsltParseAnyXSLTElem
    xsltRegisterLocalRVT
    xsltRegisterTmpRVT
    @@ -216,33 +229,14 @@ A:link, A:visited, A:active { text-decoration: underline } xsltParseStylesheetParam
    xsltParseStylesheetVariable
    itself
    xsltLoadStylesheetPI
    -

    Letter j:

    java
    xsltFormatNumberConversion
    -
    jdk
    xsltFormatNumberConversion
    -
    just
    _xsltCompilerCtxt
    -

    Letter k:

    keep
    _xsltCompilerCtxt
    -
    keeping
    _xsltStylesheet
    -
    kept
    _xsltDocument
    -
    key
    _xsltDocument
    -_xsltStylesheet
    -xsltAddKey
    -xsltGetKey
    -xsltInitCtxtKey
    -xsltKeyFunction
    -xsltNewDocument
    -xsltNewStyleDocument
    -
    keys
    xsltFreeDocumentKeys
    -xsltFreeKeys
    -xsltInitCtxtKeys
    -
    kind
    xsltDocLoaderFunc
    -
    known
    _xsltTransformContext

    A-J K-S T-a b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk7.html b/doc/APIchunk7.html index 5fc38f3..34aa57b 100644 --- a/doc/APIchunk7.html +++ b/doc/APIchunk7.html @@ -7,21 +7,40 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } - API Alphabetic Index l-n for libxslt
    Action against software patentsGNOME2 LogoW3C logoRed Hat Logo
    Made with Libxslt Logo

    The XSLT C library for GNOME

    API Alphabetic Index l-n for libxslt

    Main Menu
    Related links
    • Tutorial, + API Alphabetic Index j-n for libxslt
      Action against software patentsGNOME2 LogoW3C logoRed Hat Logo
      Made with Libxslt Logo

      The XSLT C library for GNOME

      API Alphabetic Index j-n for libxslt

      Main Menu
      Related links
      API Indexes

      A-J K-S T-a b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u v-x y-z -

      Letter l:

      label
      CHECK_STOPPEDE
      +

      Letter j:

      java
      xsltFormatNumberConversion
      +
      jdk
      xsltFormatNumberConversion
      +
      just
      _xsltCompilerCtxt
      +

      Letter k:

      keep
      _xsltCompilerCtxt
      +
      keeping
      _xsltStylesheet
      +
      kept
      _xsltDocument
      +
      key
      _xsltDocument
      +_xsltStylesheet
      +xsltAddKey
      +xsltGetKey
      +xsltInitCtxtKey
      +xsltKeyFunction
      +xsltNewDocument
      +xsltNewStyleDocument
      +
      keys
      xsltFreeDocumentKeys
      +xsltFreeKeys
      +xsltInitCtxtKeys
      +
      kind
      xsltDocLoaderFunc
      +
      known
      _xsltTransformContext
      +

      Letter l:

      label
      CHECK_STOPPEDE
      language
      xsltTransformFunction
      last
      _xsltStylesheet
      _xsltTransformContext
      @@ -37,6 +56,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      level
      _xsltTransformContext
      xsltDebugGetDefaultTrace
      xsltDebugSetDefaultTrace
      +xsltLocalVariablePush
      libexsl
      xsltApplyOneTemplate
      library
      xsltCleanupGlobals
      xsltRegisterExtModule
      @@ -81,6 +101,7 @@ A:link, A:visited, A:active { text-decoration: underline } _xsltStackElem
      _xsltTemplate
      _xsltTransformContext
      +xsltLocalVariablePush
      xsltParseStylesheetParam
      xsltParseStylesheetVariable
      xsltSplitQName
      @@ -112,9 +133,11 @@ A:link, A:visited, A:active { text-decoration: underline } xsltRunStylesheetUser
      make
      xsltAllocateExtraCtxt
      makes
      xsltCheckWrite
      -
      map
      _xsltPrincipalStylesheetData
      +
      map
      XSLT_GET_INTERNAL_NSMAP
      +_xsltPrincipalStylesheetData
      mapped
      _xsltNsMap
      -
      mapping
      xsltAttrTemplateValueProcessNode
      +
      mapping
      XSLT_HAS_INTERNAL_NSMAP
      +xsltAttrTemplateValueProcessNode
      xsltEvalXPathStringNs
      marked
      xsltExtensionInstructionResultFinalize
      mask
      _xsltTransformContext
      @@ -311,8 +334,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk8.html b/doc/APIchunk8.html index 09eb711..5f7bd18 100644 --- a/doc/APIchunk8.html +++ b/doc/APIchunk8.html @@ -14,8 +14,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -23,6 +23,7 @@ A:link, A:visited, A:active { text-decoration: underline } y-z

      Letter o:

      object
      XML_CAST_FPTR
      xsltDocumentFunction
      +xsltExtensionInstructionResultRegister
      xsltKeyFunction
      xsltSystemPropertyFunction
      xsltXPathCompile
      @@ -66,11 +67,13 @@ A:link, A:visited, A:active { text-decoration: underline } xsltRunStylesheet
      xsltRunStylesheetUser
      onto
      xsltAddStackElemList
      +xsltLocalVariablePush
      open
      xsltSaveResultToFd
      xsltSaveResultToFile
      operation
      xsltSecurityAllow
      xsltSecurityForbid
      -
      optimization
      _xsltTransformContext
      +
      optimization
      XSLT_REFACTORED_XPATHCOMP
      +_xsltTransformContext
      option
      xsltGetSecurityPrefs
      xsltSetCtxtParseOptions
      xsltSetSecurityPrefs
      @@ -146,6 +149,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      params
      _xsltCompilerCtxt
      _xsltTransformContext
      parent
      xsltGetNamespace
      +xsltParseStylesheetImportedDoc
      parse
      xsltParseGlobalParam
      xsltParseStylesheetAttributeSet
      xsltParseStylesheetDoc
      @@ -216,26 +220,6 @@ A:link, A:visited, A:active { text-decoration: underline }
      point
      _xsltFormatNumberInfo
      xsltXPathFunctionLookup
      xsltXPathVariableLookup
      -
      pointer
      XML_CAST_FPTR
      -_xsltRuntimeExtra
      -_xsltTransformContext
      -fptr
      -xsltDocLoaderFunc
      -xsltExtInitFunction
      -xsltFindTemplate
      -xsltFreeAVTList
      -xsltGetExtData
      -xsltGetExtInfo
      -xsltGetQNameURI
      -xsltGetQNameURI2
      -xsltGetUTF8Char
      -xsltNewSecurityPrefs
      -xsltNormalizeCompSteps
      -xsltPointerListAddSize
      -xsltSaveResultToString
      -xsltStyleExtInitFunction
      -xsltStyleGetExtData
      -xsltStyleStylesheetLevelGetExtData
      pointers
      XSLT_GET_IMPORT_PTR
      points
      xsltSetDebuggerCallbacks
      pops
      xsltApplyOneTemplate
      @@ -263,12 +247,18 @@ A:link, A:visited, A:active { text-decoration: underline }
      precomputed
      _xsltStylesheet
      xsltAttribute
      xsltComment
      +xsltCopyOf
      xsltDebug
      +xsltDocumentElem
      +xsltElement
      xsltFreeStylePreComps
      xsltInitElemPreComp
      +xsltNumber
      xsltPreComputeExtModuleElement
      +xsltProcessingInstruction
      xsltSort
      xsltText
      +xsltValueOf
      predicate
      xsltEvalXPathPredicate
      preference
      xsltFreeSecurityPrefs
      xsltGetDefaultSecurityPrefs
      @@ -362,6 +352,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      public?
      xsltAttrTemplateValueProcessNode
      purpose
      XSLT_REGISTER_FUNCTION_LOOKUP
      XSLT_REGISTER_VARIABLE_LOOKUP
      +
      pushed
      xsltLocalVariablePush
      pushes
      xsltApplyOneTemplate

      A-J K-S @@ -369,8 +360,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIchunk9.html b/doc/APIchunk9.html index c6ebe4e..081d98c 100644 --- a/doc/APIchunk9.html +++ b/doc/APIchunk9.html @@ -14,8 +14,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u @@ -23,6 +23,7 @@ A:link, A:visited, A:active { text-decoration: underline } y-z

      Letter q:

      query
      xsltGetKey
      quick
      IS_XSLT_ATTR_FAST
      +IS_XSLT_ELEM_FAST
      quote
      xsltFormatNumberConversion

      Letter r:

      raise
      xsltApplyOneTemplate
      rank=
      xsltGetProfileInformation
      @@ -58,6 +59,7 @@ A:link, A:visited, A:active { text-decoration: underline } xsltParseGlobalVariable
      related
      _xsltStylesheet
      xsltParseStylesheetOutput
      +
      remain
      xsltLocalVariablePop
      remove
      xsltParseSequenceConstructor
      reorder
      xsltComputeSortResult
      xsltDefaultSortFunction
      @@ -108,7 +110,6 @@ A:link, A:visited, A:active { text-decoration: underline } xsltAttrTemplateValueProcessNode
      xsltEvalAVT
      xsltSplitQName
      -xsltTemplateProcess
      returned
      xsltExtensionInstructionResultFinalize
      xsltGetProfileInformation
      xsltGetQNameURI
      @@ -120,6 +121,7 @@ A:link, A:visited, A:active { text-decoration: underline } _xsltCompilerNodeInfo
      xsltApplyStripSpaces
      routine
      _xsltRuntimeExtra
      +xsltLocalVariablePush
      routines
      xsltSetDebuggerCallbacks
      rule
      xsltFindTemplate
      rules
      XML_CAST_FPTR
      @@ -172,7 +174,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltEvalTemplateString
      xsltGetUTF8Char
      xsltParseSequenceConstructor
      -
      set
      XSLT_MARK_RES_TREE_FRAG
      +
      set
      NODE_IS_KEYED
      +XSLT_MARK_RES_TREE_FRAG
      XSLT_PARSE_OPTIONS
      _xsltStylesheet
      xsltApplyOneTemplate
      @@ -211,6 +214,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltFindElemSpaceHandling
      xsltFreeRVTs
      xsltGetProfileInformation
      +xsltLocalVariablePop
      +xsltLocalVariablePush
      xsltNeedElemSpaceHandling
      xsltQuoteUserParams
      xsltRegisterExtElement
      @@ -242,6 +247,7 @@ A:link, A:visited, A:active { text-decoration: underline }
      size
      _xsltStylesheet
      _xsltTransformContext
      xsltPointerListAddSize
      +xsltPointerListCreate
      slightly
      xsltGetCNsProp
      xsltGetNsProp
      slot
      xsltAllocateExtra
      @@ -295,6 +301,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltAddStackElemList
      xsltApplyOneTemplate
      xsltFreeStackElemList
      +xsltLocalVariablePop
      +xsltLocalVariablePush
      standalone
      _xsltStylesheet
      start
      xsltApplyOneTemplate
      xsltEvalGlobalVariables
      @@ -388,6 +396,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltEvalUserParams
      xsltExtensionInstructionResultFinalize
      xsltExtensionInstructionResultRegister
      +xsltInitCtxtKey
      +xsltLocalVariablePush
      xsltParseStylesheetImport
      xsltParseStylesheetInclude
      xsltQuoteOneUserParam
      @@ -425,8 +435,8 @@ A:link, A:visited, A:active { text-decoration: underline } b-c d-e f-g -h-k -l-n +h-i +j-n o-p q-s t-u diff --git a/doc/APIfiles.html b/doc/APIfiles.html index 36b2870..6679878 100644 --- a/doc/APIfiles.html +++ b/doc/APIfiles.html @@ -180,6 +180,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltFreeTransformContext
      xsltGetXIncludeDefault
      xsltIf
      +xsltLocalVariablePop
      +xsltLocalVariablePush
      xsltNewTransformContext
      xsltNumber
      xsltProcessingInstruction
      diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html index 83bc791..deb6c3b 100644 --- a/doc/APIfunctions.html +++ b/doc/APIfunctions.html @@ -291,6 +291,7 @@ A:link, A:visited, A:active { text-decoration: underline }

      Type xsltStackElemPtr:

      xsltAddStackElemList
      xsltApplyOneTemplate
      xsltFreeStackElemList
      +xsltLocalVariablePush

      Type xsltStyleExtInitFunction:

      xsltRegisterExtModuleFull

      Type xsltStyleExtShutdownFunction:

      xsltRegisterExtModuleFull

      Type xsltStylePreCompPtr:

      xsltApplyImports
      @@ -449,6 +450,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltInitCtxtKey
      xsltInitCtxtKeys
      xsltLoadDocument
      +xsltLocalVariablePop
      +xsltLocalVariablePush
      xsltMatchPattern
      xsltMessage
      xsltNeedElemSpaceHandling
      diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html index 0d004d6..f4f07e4 100644 --- a/doc/APIsymbols.html +++ b/doc/APIsymbols.html @@ -354,6 +354,8 @@ A:link, A:visited, A:active { text-decoration: underline } xsltLoadStyleDocument
      xsltLoadStylesheetPI
      xsltLoadType
      +xsltLocalVariablePop
      +xsltLocalVariablePush
      xsltMatchPattern
      xsltMaxDepth
      xsltMessage
      diff --git a/doc/Makefile.am b/doc/Makefile.am index 3d8535f..75abd5f 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -17,7 +17,7 @@ WIN32_DIR=$(top_srcdir)/win32 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)/html PAGES= API.html bugs.html contribs.html FAQ.html docs.html \ downloads.html help.html index.html intro.html news.html \ - xsltproc2.html + xsltproc.html xsltproc2.html EPAGES= EXSLT/bugs.html EXSLT/docs.html EXSLT/downloads.html \ EXSLT/help.html EXSLT/index.html EXSLT/intro.html diff --git a/doc/html/libxslt-transform.html b/doc/html/libxslt-transform.html index 203647d..3b17dca 100644 --- a/doc/html/libxslt-transform.html +++ b/doc/html/libxslt-transform.html @@ -27,6 +27,8 @@ A:link, A:visited, A:active { text-decoration: underline }

      void	xsltFreeTransformContext	(xsltTransformContextPtr ctxt)
      int	xsltGetXIncludeDefault		(void)
      void	xsltIf			(xsltTransformContextPtr ctxt, 
      xmlNodePtr contextNode,
      xmlNodePtr inst,
      xsltStylePreCompPtr castedComp)
      +
      void	xsltLocalVariablePop		(xsltTransformContextPtr ctxt, 
      int limitNr,
      int level)
      +
      int	xsltLocalVariablePush		(xsltTransformContextPtr ctxt, 
      xsltStackElemPtr variable,
      int level)
      xsltTransformContextPtr	xsltNewTransformContext	(xsltStylesheetPtr style, 
      xmlDocPtr doc)
      void	xsltNumber			(xsltTransformContextPtr ctxt, 
      xmlNodePtr node,
      xmlNodePtr inst,
      xsltStylePreCompPtr castedComp)
      void	xsltProcessingInstruction	(xsltTransformContextPtr ctxt, 
      xmlNodePtr node,
      xmlNodePtr inst,
      xsltStylePreCompPtr castedComp)
      @@ -79,7 +81,11 @@ A:link, A:visited, A:active { text-decoration: underline }

      Provides the default state for XInclude processing

      Returns:0 if there is no processing 1 otherwise

      Function: xsltIf

      void	xsltIf			(xsltTransformContextPtr ctxt, 
      xmlNodePtr contextNode,
      xmlNodePtr inst,
      xsltStylePreCompPtr castedComp)

      Processes the xsl:if instruction on the source node.

      -
      ctxt:a XSLT process context
      contextNode:the current node in the source tree
      inst:the xsl:if instruction
      castedComp:

      Function: xsltNewTransformContext

      xsltTransformContextPtr	xsltNewTransformContext	(xsltStylesheetPtr style, 
      xmlDocPtr doc)
      +
      ctxt:a XSLT process context
      contextNode:the current node in the source tree
      inst:the xsl:if instruction
      castedComp:

      Function: xsltLocalVariablePop

      void	xsltLocalVariablePop		(xsltTransformContextPtr ctxt, 
      int limitNr,
      int level)
      +

      +
      ctxt:
      limitNr:
      level:

      Function: xsltLocalVariablePush

      int	xsltLocalVariablePush		(xsltTransformContextPtr ctxt, 
      xsltStackElemPtr variable,
      int level)
      +

      +
      ctxt:
      variable:
      level:
      Returns:

      Function: xsltNewTransformContext

      xsltTransformContextPtr	xsltNewTransformContext	(xsltStylesheetPtr style, 
      xmlDocPtr doc)

      Create a new XSLT TransformContext

      style:a parsed XSLT stylesheet
      doc:the input document
      Returns:the newly allocated xsltTransformContextPtr or NULL in case of error

      Function: xsltNumber

      void	xsltNumber			(xsltTransformContextPtr ctxt, 
      xmlNodePtr node,
      xmlNodePtr inst,
      xsltStylePreCompPtr castedComp)

      Process the xslt number node on the source node

      diff --git a/doc/index.py b/doc/index.py index b6ead8b..3cb3fec 100755 --- a/doc/index.py +++ b/doc/index.py @@ -49,7 +49,7 @@ def callback(ctx, str): libxml2.registerErrorHandler(callback, None) # -# The dictionnary of tables required and the SQL command needed +# The dictionary of tables required and the SQL command needed # to create them # TABLES={ @@ -434,7 +434,7 @@ def updateWordArchive(name, id, relevance): ######################################################################### # # -# Word dictionnary and analysis routines # +# Word dictionary and analysis routines # # # ######################################################################### diff --git a/doc/libxslt-api.xml b/doc/libxslt-api.xml index f7361dd..81af5bc 100644 --- a/doc/libxslt-api.xml +++ b/doc/libxslt-api.xml @@ -225,18 +225,20 @@ + - + + @@ -670,12 +672,13 @@ Macro to check if the XSLT processing should be stopped. Will goto the error: label. - quick test to detect XSLT attributes + quick check for xslt namespace attribute Checks that the element pertains to XSLT namespace. + quick check whether this is an xslt element Checks the value of an element in XSLT namespace. @@ -686,6 +689,7 @@ + check for bit 15 set Special value for undefined namespace, internal @@ -701,6 +705,7 @@ + get pointer to compiler context The XSLT "vendor" URL for this processor. @@ -727,8 +732,10 @@ A macro to import pointers from the stylesheet cascading order. + get pointer to namespace map + check for namespace mapping internal macro to test tree fragments @@ -776,6 +783,7 @@ Internal define to enable the refactored variable part of libxslt + Internal define to enable the optimization of the compilation of XPath expressions. Registering macro, not general purpose at all but used in different modules. @@ -1506,7 +1514,7 @@ TODO: We need to get rid of this. *'/> - - + Processes all attributes of a Literal Result Element. Attribute references are applied via xsl:use-attribute-set attributes. Copies all non XSLT-attributes over to the @target element and evaluates Attribute Value Templates. Called by xsltApplySequenceConstructor() (transform.c). - + Process one attribute of a Literal Result Element (in the stylesheet). Evaluates Attribute Value Templates and copies the attribute over to the result element. This does *not* process attribute sets (xsl:use-attribute-set). @@ -1707,7 +1715,7 @@ exits'/> - + Check if the given prefix is one of the declared extensions. This is intended to be called only at compile-time. Called by: xsltGetInheritedNsList() (xslt.c) xsltParseTemplateContent (xslt.c) @@ -1781,7 +1789,7 @@ exits'/> - + Copies a namespace node (declaration). If @elem is not NULL, then the new namespace will be declared on @elem. @@ -1803,7 +1811,7 @@ exits'/> - + Adds @string to a newly created or an existent text node child of @target. @@ -1864,7 +1872,7 @@ exits'/> An xsltDocLoaderFunc is a signature for a function which can be registered to load document not provided by the compilation or transformation API themselve, for example when an xsl:import, xsl:include is found at compilation time or when a document() call is made at runtime. - + @@ -1882,7 +1890,7 @@ exits'/> - + Implement the document() XSLT function node-set document(object, node-set?) @@ -1910,7 +1918,7 @@ exits'/> - + Implement the element-available() XSLT function boolean element-available(string) @@ -2049,7 +2057,7 @@ exits'/> Marks the result of a value-returning extension instruction in order to avoid it being garbage collected before the extension instruction exits. Note that one still has to additionally register any newly created tree fragments (via xsltCreateRVT()) with xsltRegisterLocalRVT(). - + Try to find a document within the XSLT transformation context. This will not find document infos for temporary Result Tree Fragments. @@ -2074,9 +2082,9 @@ exits'/> Process the xslt for-each node on the source node - + - + format-number() uses the JDK 1.1 DecimalFormat class: http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html Structure: pattern := subpattern{;subpattern} subpattern := {prefix}integer{.fraction}{suffix} prefix := '\\u0000'..'\\uFFFD' - specialCharacters suffix := '\\u0000'..'\\uFFFD' - specialCharacters integer := '#'* '0'* '0' fraction := '0'* '#'* Notation: X* 0 or more instances of X (X | Y) either X or Y. X..Y any character from X up to Y, inclusive. S - T characters in S, except those in T Special Characters: Symbol Meaning 0 a digit # a digit, zero shows as absent . placeholder for decimal separator , placeholder for grouping separator. ; separates formats. - default negative prefix. % multiply by 100 and show as percentage ? multiply by 1000 and show as per mille X any other characters can be used in the prefix or suffix ' used to quote special characters in a prefix or suffix. @@ -2115,7 +2123,7 @@ exits'/> Free the keys associated to a document - + Free up all the space used by the loaded documents @@ -2202,7 +2210,7 @@ exits'/> Similar to xmlGetNsProp() but with a slightly different semantic Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified, or has no namespace and the element is in that namespace. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. - + @@ -2323,7 +2331,7 @@ exits'/> - + Initializes the processor (e.g. registers built-in extensions, etc.) @@ -2336,7 +2344,7 @@ exits'/> Computes the key tables this key and for the current input document. - + @@ -2384,6 +2392,20 @@ exits'/> + + Pops all variable values at the given @depth from the stack. + + + + + + + Places the variable onto the local variable stack + + + + + @@ -2462,7 +2484,7 @@ exits'/> - + Convert one number. @@ -2527,7 +2549,7 @@ exits'/> parse an XSLT stylesheet building the associated structures except the processing not needed for imported documents. - + parse an XSLT stylesheet include element @@ -2573,19 +2595,19 @@ exits'/> - + Resets the list, but does not free the allocated array and does not free the content of the list. - + Creates an xsltPointerList structure. - + Frees the xsltPointerList structure. This does not free the content of the list. - + Precomputes an extension module element @@ -2613,7 +2635,7 @@ exits'/> - + Apply the stylesheet to the document and dump the profiling to the given output. @@ -2942,9 +2964,9 @@ exits'/> - Split QNames into prefix and local names, both allocated from a dictionnary. + Split QNames into prefix and local names, both allocated from a dictionary. - + @@ -2986,8 +3008,8 @@ exits'/> - Obsolete. Does always return NULL. Don't use it. - + Obsolete. Don't use it. + @@ -3085,7 +3107,7 @@ exits'/> - + Search in the Variable array of the context for the given variable value. diff --git a/doc/libxslt-refs.xml b/doc/libxslt-refs.xml index 325bb5b..0ac1f5a 100644 --- a/doc/libxslt-refs.xml +++ b/doc/libxslt-refs.xml @@ -347,6 +347,8 @@ + + @@ -926,6 +928,8 @@ + + @@ -1666,6 +1670,7 @@ + @@ -1838,6 +1843,8 @@ + + @@ -2090,6 +2097,8 @@ + + @@ -2664,9 +2673,6 @@ - - - @@ -2861,6 +2867,7 @@ + @@ -2975,6 +2982,7 @@ + @@ -3052,6 +3060,12 @@ + + + + + + @@ -3179,6 +3193,9 @@ + + + @@ -3539,6 +3556,7 @@ + @@ -3552,6 +3570,7 @@ + @@ -3587,7 +3606,6 @@ - @@ -3610,6 +3628,7 @@ + @@ -3706,6 +3725,7 @@ + @@ -3765,7 +3785,6 @@ - @@ -3840,6 +3859,9 @@ + + + @@ -3912,6 +3934,7 @@ + @@ -3989,6 +4012,7 @@ + @@ -4081,6 +4105,10 @@ + + + + @@ -4101,6 +4129,9 @@ + + + @@ -4153,6 +4184,7 @@ + @@ -4171,13 +4203,20 @@ + + + + + + + @@ -4207,6 +4246,7 @@ + @@ -4256,6 +4296,7 @@ + @@ -4436,6 +4477,7 @@ + @@ -4457,6 +4499,7 @@ + @@ -4477,9 +4520,6 @@ - - - @@ -4487,17 +4527,13 @@ - - - - - - + - + + @@ -4563,6 +4599,7 @@ + @@ -4635,6 +4672,7 @@ + @@ -4750,6 +4788,9 @@ + + + @@ -4785,6 +4826,7 @@ + @@ -4902,6 +4944,7 @@ + @@ -5014,6 +5057,7 @@ + @@ -5022,6 +5066,7 @@ + @@ -5043,6 +5088,7 @@ + @@ -5120,6 +5166,8 @@ + + @@ -5143,6 +5191,7 @@ + @@ -5355,13 +5404,23 @@ + + + + + + + + + + @@ -5385,6 +5444,7 @@ + @@ -5415,6 +5475,9 @@ + + + @@ -5461,6 +5524,7 @@ + @@ -5521,6 +5585,8 @@ + + @@ -5564,8 +5630,6 @@ - - @@ -5600,6 +5664,7 @@ + @@ -5672,6 +5737,7 @@ + @@ -5731,12 +5797,14 @@ + + @@ -6070,6 +6138,7 @@ + @@ -6139,6 +6208,7 @@ + @@ -6149,6 +6219,7 @@ + @@ -6269,6 +6340,7 @@ + @@ -6386,28 +6458,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -6458,12 +6508,18 @@ + + + + + + @@ -6622,6 +6678,9 @@ + + + @@ -6634,6 +6693,7 @@ + @@ -6708,6 +6768,9 @@ + + + @@ -6807,7 +6870,6 @@ - @@ -6829,6 +6891,7 @@ + @@ -6931,6 +6994,7 @@ + @@ -6980,6 +7044,8 @@ + + @@ -7037,6 +7103,7 @@ + @@ -7126,6 +7193,8 @@ + + @@ -7305,6 +7374,8 @@ + + @@ -7431,7 +7502,6 @@ - @@ -7698,6 +7768,9 @@ + + + @@ -7740,25 +7813,12 @@ + - - - - - - - - - - - - - - @@ -7768,6 +7828,7 @@ + @@ -7860,6 +7921,7 @@ + @@ -7875,6 +7937,7 @@ + @@ -8062,6 +8125,7 @@ + @@ -8090,6 +8154,8 @@ + + @@ -8281,8 +8347,8 @@ - - + + diff --git a/doc/news.html b/doc/news.html index f25f328..20ab01f 100644 --- a/doc/news.html +++ b/doc/news.html @@ -54,7 +54,7 @@ to the CVS code base.

    • bug fixes: negative number formatting (William Brack), number formatting per mille definition (William Brack), XInclude default values (William), text copy bugs (William), bug related to xmlXPathContext size, - reuse libxml2 memory management for text nodes, dictionnary text bug, + reuse libxml2 memory management for text nodes, dictionary text bug, forbid variables in match (needs libxml2-2.6.21)
    • improvements: EXSLT dyn:map (Mark Vakoc),
    • documentation: EXSLT date and time functions namespace in man (Jonathan @@ -66,7 +66,7 @@ to the CVS code base.

      select, xinclude and document() problem, build outside of source tree (Mike Castle)

    • improvement: added a --nodict mode to xsltproc to check problems for - docuemtns without dictionnaries
    • + docuemtns without dictionaries

      1.1.13: Mar 13 2005

      • build fixes: 64bits cleanup (William Brack), python 2.4 test (William), LIBXSLT_VERSION_EXTRA on Windows (William), Windows makefiles fixes (Joel Reed), libgcrypt-devel requires for RPM spec.
      • @@ -77,7 +77,7 @@ to the CVS code base.

        (Aleksey Gurtovoy), pattern expression fixes (William Brack), out of memory detection misses (William), parserOptions propagation (William), exclude-result-prefixes fix (William), // patten fix (William). -

      • extensions: module support (Joel Reed), dictionnary based speedups +
      • extensions: module support (Joel Reed), dictionary based speedups trying to get rid of xmlStrEqual as much as possible.
      • documentation: added Wiki (Joel Reed)

      1.1.12: Oct 29 2004

      • build fixes: warnings removal (William).
      • @@ -126,21 +126,21 @@ to the CVS code base.

        libxslt.m4 bug (Edward Rudd), namespace lookup for attribute, namespaced DOCTYPE name

      1.1.6: Apr 18 2004

      • 2 bug fixes about keys fixed one by Mark Vakoc
      • -

      1.1.5: Mar 23 2004

      • performance: use dictionnary lookup for variables
      • +

      1.1.5: Mar 23 2004

      • performance: use dictionary lookup for variables
      • remove use of _private from source documents
      • cleanup of "make tests" output
      • bugfixes: AVT in local variables, use localtime_r to avoid thread troubles (William), dictionary handling bug (William), limited number of stubstitutions in AVT (William), tokenize fix for UTF-8 (William), superfluous namespace (William), xsltproc error code on - <xsl:message> halt, OpenVMS fix, dictionnary reference counting + <xsl:message> halt, OpenVMS fix, dictionary reference counting change.

      1.1.4: Feb 23 2004

      • bugfixes: attributes without doc (Mariano Suárez-Alvarez), problem with Yelp, extension problem
      • display extension modules (Steve Little)
      • Windows compilation patch (Mark Vadoc), Mingw (Mikhail Grushinskiy)

      1.1.3: Feb 16 2004

      • Rewrote the Attribute Value Template code, new XPath compilation - interfaces, dictionnary reuses for XSLT with potential for serious + interfaces, dictionary reuses for XSLT with potential for serious performance improvements.
      • bug fixes: portability (William Brack), key() in node-set() results (William), comment before doctype (William), math and node-set() problems diff --git a/doc/python.html b/doc/python.html index 863868f..da3537d 100644 --- a/doc/python.html +++ b/doc/python.html @@ -145,7 +145,7 @@ doc = libxml2.parseDoc("<doc/>") result = style.applyStylesheet(doc, { "bar": "'success'" }) style.freeStylesheet() doc.freeDoc()

      that part is identical, to the basic example except that the -transformation is passed a dictionnary of parameters. Note that the string +transformation is passed a dictionary of parameters. Note that the string passed "success" had to be quoted, otherwise it is interpreted as an XPath query for the childs of root named "success".

      root = result.children
       if root.name != "article":
      diff --git a/doc/xslt.html b/doc/xslt.html
      index d5930d2..717bc6a 100644
      --- a/doc/xslt.html
      +++ b/doc/xslt.html
      @@ -365,7 +365,7 @@ to the CVS code base.

    • bug fixes: negative number formatting (William Brack), number formatting per mille definition (William Brack), XInclude default values (William), text copy bugs (William), bug related to xmlXPathContext size, - reuse libxml2 memory management for text nodes, dictionnary text bug, + reuse libxml2 memory management for text nodes, dictionary text bug, forbid variables in match (needs libxml2-2.6.21)
    • improvements: EXSLT dyn:map (Mark Vakoc),
    • documentation: EXSLT date and time functions namespace in man (Jonathan @@ -381,7 +381,7 @@ to the CVS code base.

      select, xinclude and document() problem, build outside of source tree (Mike Castle)
    • improvement: added a --nodict mode to xsltproc to check problems for - docuemtns without dictionnaries
    • + docuemtns without dictionaries

      1.1.13: Mar 13 2005

      @@ -396,7 +396,7 @@ to the CVS code base.

      (Aleksey Gurtovoy), pattern expression fixes (William Brack), out of memory detection misses (William), parserOptions propagation (William), exclude-result-prefixes fix (William), // patten fix (William). -
    • extensions: module support (Joel Reed), dictionnary based speedups +
    • extensions: module support (Joel Reed), dictionary based speedups trying to get rid of xmlStrEqual as much as possible.
    • documentation: added Wiki (Joel Reed)
    • @@ -477,14 +477,14 @@ to the CVS code base.

      1.1.5: Mar 23 2004

        -
      • performance: use dictionnary lookup for variables
      • +
      • performance: use dictionary lookup for variables
      • remove use of _private from source documents
      • cleanup of "make tests" output
      • bugfixes: AVT in local variables, use localtime_r to avoid thread troubles (William), dictionary handling bug (William), limited number of stubstitutions in AVT (William), tokenize fix for UTF-8 (William), superfluous namespace (William), xsltproc error code on - <xsl:message> halt, OpenVMS fix, dictionnary reference counting + <xsl:message> halt, OpenVMS fix, dictionary reference counting change.
      @@ -499,7 +499,7 @@ to the CVS code base.

      1.1.3: Feb 16 2004

      • Rewrote the Attribute Value Template code, new XPath compilation - interfaces, dictionnary reuses for XSLT with potential for serious + interfaces, dictionary reuses for XSLT with potential for serious performance improvements.
      • bug fixes: portability (William Brack), key() in node-set() results (William), comment before doctype (William), math and node-set() problems @@ -1423,7 +1423,7 @@ style.freeStylesheet() doc.freeDoc()

      that part is identical, to the basic example except that the -transformation is passed a dictionnary of parameters. Note that the string +transformation is passed a dictionary of parameters. Note that the string passed "success" had to be quoted, otherwise it is interpreted as an XPath query for the childs of root named "success".

      root = result.children
      diff --git a/doc/xsltproc.1 b/doc/xsltproc.1
      index 82c2357..2fc14ae 100644
      --- a/doc/xsltproc.1
      +++ b/doc/xsltproc.1
      @@ -1,8 +1,11 @@
      -.\" ** You probably do not want to edit this file directly **
      -.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
      -.\" Instead of manually editing it, you probably should edit the DocBook XML
      -.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
      -.TH "XSLTPROC" "1" "$Date$" "libxslt" ""
      +.\"     Title: xsltproc
      +.\"    Author: John Fleck 
      +.\" Generator: DocBook XSL Stylesheets v1.70.1 
      +.\"      Date: $Date: 2006.08.21 01:46:05 .0700 (Mon, 21 Aug 2006) $
      +.\"    Manual: xsltproc Manual
      +.\"    Source: libxslt
      +.\"
      +.TH "XSLTPROC" "1" "$Date: 2006\-08\-21 01:46:05 \-0700 (Mon, 21 Aug 2006) $" "libxslt" "xsltproc Manual"
       .\" disable hyphenation
       .nh
       .\" disable justification (adjust text to left margin only)
      @@ -11,9 +14,10 @@
       xsltproc \- command line XSLT processor
       .SH "SYNOPSIS"
       .HP 9
      -\fBxsltproc\fR [[\fB\-V\fR \fB\-\-version\fR] [\fB\-v\fR \fB\-\-verbose\fR] [{\fB\-o\fR \fB\-\-output\fR} {\fIFILE\fR \fIDIRECTORY\fR}] \fB\-\-timing\fR \fB\-\-repeat\fR \fB\-\-debug\fR \fB\-\-novalid\fR \fB\-\-noout\fR \fB\-\-maxdepth\ \fR\fB\fIVALUE\fR\fR \fB\-\-html\fR \fB\-\-param\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR \fB\-\-stringparam\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR \fB\-\-nonet\fR \fB\-\-path\ "\fR\fB\fIPATH(S)\fR\fR\fB"\fR \fB\-\-load\-trace\fR \fB\-\-catalogs\fR \fB\-\-xinclude\fR [\fB\-\-profile\fR\ \fB\-\-norman\fR] \fB\-\-dumpextensions\fR \fB\-\-nowrite\fR \fB\-\-nomkdir\fR \fB\-\-writesubtree\ \fR\fB\fIPATH\fR\fR \fB\-\-nodtdattr\fR] [\fISTYLESHEET\fR] {\fIXML\-FILE\fR \-}
      +\fBxsltproc\fR [[\fB\-V\fR | \fB\-\-version\fR] [\fB\-v\fR | \fB\-\-verbose\fR] [{\fB\-o\fR | \fB\-\-output\fR} {\fIFILE\fR | \fIDIRECTORY\fR}] | \fB\-\-timing\fR | \fB\-\-repeat\fR | \fB\-\-debug\fR | \fB\-\-novalid\fR | \fB\-\-noout\fR | \fB\-\-maxdepth\ \fR\fB\fIVALUE\fR\fR | \fB\-\-html\fR | \fB\-\-param\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR | \fB\-\-stringparam\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR | \fB\-\-nonet\fR | \fB\-\-path\ "\fR\fB\fIPATH(S)\fR\fR\fB"\fR | \fB\-\-load\-trace\fR | \fB\-\-catalogs\fR | \fB\-\-xinclude\fR | [\fB\-\-profile\fR\ |\ \fB\-\-norman\fR] | \fB\-\-dumpextensions\fR | \fB\-\-nowrite\fR | \fB\-\-nomkdir\fR | \fB\-\-writesubtree\ \fR\fB\fIPATH\fR\fR | \fB\-\-nodtdattr\fR] [\fISTYLESHEET\fR] {\fIXML\-FILE\fR | \-}
       .SH "DESCRIPTION"
       .PP
      +
       \fBxsltproc\fR
       is a command line tool for applying
       XSLT
      @@ -22,6 +26,7 @@ XML
       documents. It is part of
       \fBlibxslt\fR(3), the XSLT C library for GNOME. While it was developed as part of the GNOME project, it can operate independently of the GNOME desktop.
       .PP
      +
       \fBxsltproc\fR
       is invoked from the command line with the name of the stylesheet to be used followed by the name of the file or files to which the stylesheet is to be applied. It will use the standard input if a filename provided is
       \fB\-\fR
      @@ -41,9 +46,10 @@ or
       option.
       .SH "OPTIONS"
       .PP
      +
       \fBxsltproc\fR
       accepts the following options (in alphabetical order):
      -.TP
      +.TP 3n
       \fB\-\-catalogs\fR
       Use the
       SGML
      @@ -54,51 +60,51 @@ to resolve the location of external entities. By default,
       looks for the catalog specified in
       \fBXML_CATALOG_FILES\fR. If that is not specified, it uses
       \fI/etc/xml/catalog\fR.
      -.TP
      +.TP 3n
       \fB\-\-debug\fR
       Output an
       XML
       tree of the transformed document for debugging purposes.
      -.TP
      +.TP 3n
       \fB\-\-dumpextensions\fR
       Dumps the list of all registered extensions on
       \fIstdout\fR.
      -.TP
      +.TP 3n
       \fB\-\-html\fR
       The input document is an
       HTML
       file.
      -.TP
      +.TP 3n
       \fB\-\-load\-trace\fR
       Display all the documents loaded during the processing to
       \fIstderr\fR.
      -.TP
      +.TP 3n
       \fB\-\-maxdepth \fR\fB\fIVALUE\fR\fR
       Adjust the maximum depth of the template stack before
       \fBlibxslt\fR(3)
       concludes it is in an infinite loop. The default is 500.
      -.TP
      +.TP 3n
       \fB\-\-nodtdattr\fR
       Do not apply default attributes from the document's
       DTD.
      -.TP
      +.TP 3n
       \fB\-\-nomkdir\fR
       Refuses to create directories.
      -.TP
      +.TP 3n
       \fB\-\-nonet\fR
       Do not use the Internet to fetch
       DTDs, entities or documents.
      -.TP
      +.TP 3n
       \fB\-\-noout\fR
       Do not output the result.
      -.TP
      +.TP 3n
       \fB\-\-novalid\fR
       Skip loading the document's
       DTD.
      -.TP
      +.TP 3n
       \fB\-\-nowrite\fR
       Refuses to write to any file or resource.
      -.TP
      +.TP 3n
       \fB\-o\fR or \fB\-\-output\fR \fIFILE\fR | \fIDIRECTORY\fR
       Direct output to the given
       \fIFILE\fR. Using the option with a
      @@ -130,7 +136,7 @@ as described in RFC 2396 and laters. This means, that e.g.
       will maybe not work, but
       \fB\-o directory/\fR
       will.
      -.TP
      +.TP 3n
       \fB\-\-param \fR\fB\fIPARAMNAME\fR\fR\fB \fR\fB\fIPARAMVALUE\fR\fR
       Pass a parameter of name
       \fIPARAMNAME\fR
      @@ -139,19 +145,19 @@ and value
       to the stylesheet. You may pass multiple name/value pairs up to a maximum of 32. If the value being passed is a string rather than a node identifier, use
       \fB\-\-stringparam\fR
       instead.
      -.TP
      +.TP 3n
       \fB\-\-path "\fR\fB\fIPATH(S)\fR\fR\fB"\fR
       Use the (space\- or colon\-separated) list of filesystem paths specified by
       \fIPATHS\fR
       to load
       DTDs, entities or documents. Enclose space\-separated lists by quotation marks.
      -.TP
      +.TP 3n
       \fB\-\-profile\fR or \fB\-\-norman\fR
       Output profiling information detailing the amount of time spent in each part of the stylesheet. This is useful in optimizing stylesheet performance.
      -.TP
      +.TP 3n
       \fB\-\-repeat\fR
       Run the transformation 20 times. Used for timing tests.
      -.TP
      +.TP 3n
       \fB\-\-stringparam \fR\fB\fIPARAMNAME\fR\fR\fB \fR\fB\fIPARAMVALUE\fR\fR
       Pass a parameter of name
       \fIPARAMNAME\fR
      @@ -162,32 +168,32 @@ where
       is a string rather than a node identifier.
       \fBNote:\fR
       The string must be UTF\-8 encoded.
      -.TP
      +.TP 3n
       \fB\-\-timing\fR
       Display the time used for parsing the stylesheet, parsing the document and applying the stylesheet and saving the result. Displayed in milliseconds.
      -.TP
      +.TP 3n
       \fB\-v\fR or \fB\-\-verbose\fR
       Output each step taken by
       \fBxsltproc\fR
       in processing the stylesheet and the document.
      -.TP
      +.TP 3n
       \fB\-V\fR or \fB\-\-version\fR
       Show the version of
       \fBlibxml\fR(3)
       and
       \fBlibxslt\fR(3)
       used.
      -.TP
      +.TP 3n
       \fB\-\-writesubtree \fR\fB\fIPATH\fR\fR
       Allow file write only within the
       \fIPATH\fR
       subtree.
      -.TP
      +.TP 3n
       \fB\-\-xinclude\fR
       Process the input document using the XInclude specification. More details on this can be found in the XInclude specification:
       \fI\%http://www.w3.org/TR/xinclude/\fR
       .SH "ENVIRONMENT"
      -.TP
      +.TP 3n
       \fBSGML_CATALOG_FILES\fR
       SGML
       catalog behavior can be changed by redirecting queries to the user's own set of catalogs. This can be done by setting the
      @@ -195,7 +201,7 @@ catalog behavior can be changed by redirecting queries to the user's own set of
       environment variable to a list of catalogs. An empty one should deactivate loading the default
       \fI/etc/sgml/catalog\fR
       catalog.
      -.TP
      +.TP 3n
       \fBXML_CATALOG_FILES\fR
       XML
       catalog behavior can be changed by redirecting queries to the user's own set of catalogs. This can be done by setting the
      @@ -205,39 +211,40 @@ environment variable to a list of catalogs. An empty one should deactivate loadi
       catalog.
       .SH "DIAGNOSTICS"
       .PP
      +
       \fBxsltproc\fR
       return codes provide information that can be used when calling it from scripts.
      -.TP
      +.TP 3n
       \fB0\fR
       No error (normal operation)
      -.TP
      +.TP 3n
       \fB1\fR
       No argument
      -.TP
      +.TP 3n
       \fB2\fR
       Too many parameters
      -.TP
      +.TP 3n
       \fB3\fR
       Unknown option
      -.TP
      +.TP 3n
       \fB4\fR
       Failed to parse the stylesheet
      -.TP
      +.TP 3n
       \fB5\fR
       Error in the stylesheet
      -.TP
      +.TP 3n
       \fB6\fR
       Error in one of the documents
      -.TP
      +.TP 3n
       \fB7\fR
       Unsupported xsl:output method
      -.TP
      +.TP 3n
       \fB8\fR
       String parameter contains both quote and double\-quotes
      -.TP
      +.TP 3n
       \fB9\fR
       Internal processing error
      -.TP
      +.TP 3n
       \fB10\fR
       Processing was stopped by a terminating message
       .SH "SEE ALSO"
      @@ -246,16 +253,24 @@ Processing was stopped by a terminating message
       \fBlibxslt\fR(3)
       .PP
       More information can be found at
      -.TP 3
      +.TP 3n
       \(bu
       \fBlibxml\fR(3)
       web page
       \fI\%http://www.xmlsoft.org/\fR
      -.TP
      +.TP 3n
       \(bu
       W3C
       XSLT
       page
       \fI\%http://www.w3.org/TR/xslt\fR
      +.sp
      +.RE
       .SH "AUTHOR"
      -John Fleck . 
      +.PP
      +\fBJohn\fR \fBFleck\fR 
      +.sp -1n
      +.IP "" 3n
      +Author.
      +.SH "COPYRIGHT"
      +Copyright \(co 2001, 2002 
      diff --git a/libexslt/strings.c b/libexslt/strings.c
      index c867f9c..af7aa88 100644
      --- a/libexslt/strings.c
      +++ b/libexslt/strings.c
      @@ -495,6 +495,143 @@ exsltStrConcatFunction (xmlXPathParserContextPtr ctxt, int nargs) {
       }
       
       /**
      + * exsltStrReplaceInternal:
      + * @str: string to modify
      + * @searchStr: string to find
      + * @replaceStr: string to replace occurrences of searchStr
      + *
      + * Search and replace string function used by exsltStrReplaceFunction
      + */
      +static xmlChar*
      +exsltStrReplaceInternal(const xmlChar* str, const xmlChar* searchStr, 
      +                        const xmlChar* replaceStr)
      +{
      +    const xmlChar *curr, *next;
      +    xmlChar *ret = NULL;
      +    int searchStrSize;
      +
      +    curr = str;
      +    searchStrSize = xmlStrlen(searchStr);
      +
      +    do {
      +      next = xmlStrstr(curr, searchStr);
      +      if (next == NULL) {
      +        ret = xmlStrcat (ret, curr);
      +        break;
      +      }
      +
      +      ret = xmlStrncat (ret, curr, next - curr);
      +      ret = xmlStrcat (ret, replaceStr);
      +      curr = next + searchStrSize;
      +    } while (*curr != 0);
      +
      +    return ret;
      +}
      +/**
      + * exsltStrReplaceFunction:
      + * @ctxt: an XPath parser context
      + * @nargs: the number of arguments
      + *
      + * Takes a string, and two node sets and returns the string with all strings in 
      + * the first node set replaced by all strings in the second node set.
      + */
      +static void
      +exsltStrReplaceFunction (xmlXPathParserContextPtr ctxt, int nargs) {
      +    xmlChar *str = NULL, *searchStr = NULL, *replaceStr = NULL;
      +    xmlNodeSetPtr replaceSet = NULL, searchSet = NULL;
      +    xmlChar *ret = NULL, *retSwap = NULL;
      +    int i;
      +
      +    if (nargs  != 3) {
      +      xmlXPathSetArityError(ctxt);
      +      return;
      +    }
      +
      +    /* pull out replace argument */
      +    if (!xmlXPathStackIsNodeSet(ctxt)) {
      +      replaceStr = xmlXPathPopString(ctxt);
      +    }
      +		else {
      +      replaceSet = xmlXPathPopNodeSet(ctxt);
      +      if (xmlXPathCheckError(ctxt)) {
      +        xmlXPathSetTypeError(ctxt);
      +        goto fail;
      +      }
      +    }
      +
      +    /* behavior driven by search argument from here on */
      +    if (!xmlXPathStackIsNodeSet(ctxt)) {
      +      searchStr = xmlXPathPopString(ctxt);
      +      str = xmlXPathPopString(ctxt);
      +
      +      if (replaceStr == NULL) {
      +        xmlXPathSetTypeError(ctxt);
      +        goto fail;
      +      }
      +
      +      ret = exsltStrReplaceInternal(str, searchStr, replaceStr);
      +    }
      +		else {
      +      searchSet = xmlXPathPopNodeSet(ctxt);
      +      if (searchSet == NULL || xmlXPathCheckError(ctxt)) {
      +        xmlXPathSetTypeError(ctxt);
      +        goto fail;
      +      }
      +
      +      str = xmlXPathPopString(ctxt);
      +			ret = xmlStrdup(str);
      +
      +			for (i = 0; i < searchSet->nodeNr; i++) {
      +
      +				searchStr = xmlXPathCastNodeToString(searchSet->nodeTab[i]);
      +
      +        if (replaceSet != NULL) {
      +          replaceStr = NULL;
      +          if (i <= replaceSet->nodeNr) {
      +            replaceStr = xmlXPathCastNodeToString(replaceSet->nodeTab[i]);
      +          }
      +
      +          retSwap = exsltStrReplaceInternal(ret, searchStr, replaceStr);
      +          
      +          if (replaceStr != NULL) {
      +            xmlFree(replaceStr);
      +            replaceStr = NULL;
      +          }
      +        }
      +        else {
      +          retSwap = exsltStrReplaceInternal(ret, searchStr, replaceStr);
      +        }
      +
      +				xmlFree(ret);
      +        if (searchStr != NULL) {
      +          xmlFree(searchStr);
      +          searchStr = NULL;
      +        }
      +
      +				ret = retSwap;
      +			}
      +
      +      if (replaceSet != NULL)
      +        xmlXPathFreeNodeSet(replaceSet);
      +
      +      if (searchSet != NULL)
      +        xmlXPathFreeNodeSet(searchSet);
      +		}
      +
      +    xmlXPathReturnString(ctxt, ret);
      +
      + fail:
      +    if (replaceStr != NULL)
      +      xmlFree(replaceStr);
      +
      +    if (searchStr != NULL)
      +      xmlFree(searchStr);
      +
      +    if (str != NULL)
      +      xmlFree(str);
      +}
      +
      +/**
        * exsltStrRegister:
        *
        * Registers the EXSLT - Strings module
      @@ -523,4 +660,7 @@ exsltStrRegister (void) {
           xsltRegisterExtModuleFunction ((const xmlChar *) "concat",
       				   EXSLT_STRINGS_NAMESPACE,
       				   exsltStrConcatFunction);
      +    xsltRegisterExtModuleFunction ((const xmlChar *) "replace",
      +				   EXSLT_STRINGS_NAMESPACE,
      +				   exsltStrReplaceFunction);
       }
      diff --git a/libxslt.spec.in b/libxslt.spec.in
      index aff0e2f..692ab36 100644
      --- a/libxslt.spec.in
      +++ b/libxslt.spec.in
      @@ -1,4 +1,4 @@
      -Summary: Library providing the Gnome XSLT engine
      +Summary: Library providing the GNOME XSLT engine
       Name: libxslt
       Version: @VERSION@
       Release: 1
      @@ -22,7 +22,7 @@ mechanism. To use it you need to have a version of libxml2 >= @LIBXML_REQUIRED_V
       installed. The xsltproc command is a command line interface to the XSLT engine
       
       %package devel
      -Summary: Libraries, includes, etc. to embed the Gnome XSLT engine
      +Summary: Libraries, includes, etc. to embed the GNOME XSLT engine
       Group: Development/Libraries
       Requires: libxslt = %{version}
       Requires: libxml2-devel >= 2.5.6
      diff --git a/libxslt/documents.c b/libxslt/documents.c
      index 038e18a..80e8096 100644
      --- a/libxslt/documents.c
      +++ b/libxslt/documents.c
      @@ -44,7 +44,7 @@
       /**
        * xsltDocDefaultLoaderFunc:
        * @URI: the URI of the document to load
      - * @dict: the dictionnary to use when parsing that document
      + * @dict: the dictionary to use when parsing that document
        * @options: parsing options, a set of xmlParserOption
        * @ctxt: the context, either a stylesheet or a transformation context
        * @type: the xsltLoadType indicating the kind of loading required
      diff --git a/libxslt/documents.h b/libxslt/documents.h
      index 93f9492..2eb1f2a 100644
      --- a/libxslt/documents.h
      +++ b/libxslt/documents.h
      @@ -59,7 +59,7 @@ typedef enum {
       /**
        * xsltDocLoaderFunc:
        * @URI: the URI of the document to load
      - * @dict: the dictionnary to use when parsing that document
      + * @dict: the dictionary to use when parsing that document
        * @options: parsing options, a set of xmlParserOption
        * @ctxt: the context, either a stylesheet or a transformation context
        * @type: the xsltLoadType indicating the kind of loading required
      diff --git a/libxslt/keys.c b/libxslt/keys.c
      index 6b9623d..72e5fdb 100644
      --- a/libxslt/keys.c
      +++ b/libxslt/keys.c
      @@ -560,6 +560,8 @@ xsltEvalXPathKeys(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
        * @keyDef: the key definition
        *
        * Computes the key tables this key and for the current input document.
      + *
      + * Returns: 0 on success, -1 on error
        */
       int
       xsltInitCtxtKey(xsltTransformContextPtr ctxt, xsltDocumentPtr idoc,
      @@ -842,7 +844,7 @@ xsltInitCtxtKeys(xsltTransformContextPtr ctxt, xsltDocumentPtr idoc) {
       
       /**
        * xsltFreeDocumentKeys:
      - * @doc: a XSLT document
      + * @idoc: a XSLT document
        *
        * Free the keys associated to a document
        */
      diff --git a/libxslt/keys.h b/libxslt/keys.h
      index 8238e6a..9182baa 100644
      --- a/libxslt/keys.h
      +++ b/libxslt/keys.h
      @@ -18,7 +18,13 @@
       extern "C" {
       #endif
       
      +/**
      + * NODE_IS_KEYED:
      + *
      + * check for bit 15 set
      + */
       #define NODE_IS_KEYED (1 >> 15)
      +
       XSLTPUBFUN int XSLTCALL
       		xsltAddKey		(xsltStylesheetPtr style,
       					 const xmlChar *name,
      diff --git a/libxslt/templates.c b/libxslt/templates.c
      index da18210..8d26a8a 100644
      --- a/libxslt/templates.c
      +++ b/libxslt/templates.c
      @@ -597,7 +597,7 @@ xsltAttrTemplateProcess(xsltTransformContextPtr ctxt, xmlNodePtr target,
        * xsltAttrListTemplateProcess:
        * @ctxt:  the XSLT transformation context
        * @target:  the element where the attributes will be grafted
      - * @cur:  the first attribute
      + * @attrs:  the first attribute
        *
        * Processes all attributes of a Literal Result Element.
        * Attribute references are applied via xsl:use-attribute-set
      @@ -807,7 +807,9 @@ error:
        * @ctxt:  the XSLT transformation context
        * @node:  the attribute template node
        *
      - * Obsolete. Does always return NULL. Don't use it.
      + * Obsolete. Don't use it.
      + *
      + * Returns NULL.
        */
       xmlNodePtr *
       xsltTemplateProcess(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED, xmlNodePtr node) {
      diff --git a/libxslt/transform.c b/libxslt/transform.c
      index 07f8d28..14ed772 100644
      --- a/libxslt/transform.c
      +++ b/libxslt/transform.c
      @@ -166,9 +166,10 @@ templPop(xsltTransformContextPtr ctxt)
       }
       
       /**
      - * xsltVariablePop:
      + * xsltLocalVariablePop:
        * @ctxt: the transformation context
      - * @depth:  the depth in the xsl:template's tree
      + * @limitNr: number of variables which should remain
      + * @level: the depth in the xsl:template's tree
        *
        * Pops all variable values at the given @depth from the stack.
        *
      @@ -430,7 +431,7 @@ xsltNewTransformContext(xsltStylesheetPtr style, xmlDocPtr doc) {
           if (cur->cache == NULL)
       	goto internal_err;
           /*
      -     * setup of the dictionnary must be done early as some of the
      +     * setup of the dictionary must be done early as some of the
            * processing later like key handling may need it.
            */
           cur->dict = xmlDictCreateSub(style->dict);
      @@ -600,7 +601,7 @@ xsltFreeTransformContext(xsltTransformContextPtr ctxt) {
           xmlDictFree(ctxt->dict);
       #ifdef WITH_XSLT_DEBUG
           xsltGenericDebug(xsltGenericDebugContext,
      -                     "freeing transformation dictionnary\n");
      +                     "freeing transformation dictionary\n");
       #endif
           memset(ctxt, -1, sizeof(xsltTransformContext));
           xmlFree(ctxt);
      @@ -768,7 +769,7 @@ xsltCopyTextString(xsltTransformContextPtr ctxt, xmlNodePtr target,
        * @ctxt:  a XSLT process context
        * @target:  the element where the text will be attached
        * @cur:  the text or CDATA node
      - * @interned:  the string is in the target doc dictionnary
      + * @interned:  the string is in the target doc dictionary
        *
        * Copy the text content of @cur and append it to @target's children.
        *
      @@ -2070,7 +2071,7 @@ xsltDebuggerStartSequenceConstructor(xsltTransformContextPtr ctxt,
       }
       
       /**
      - * xsltVariablePush:
      + * xsltLocalVariablePush:
        * @ctxt: the transformation context
        * @variable: variable to be pushed to the variable stack
        * @level: new value for variable's level
      @@ -3180,7 +3181,7 @@ xsltApplyOneTemplate(xsltTransformContextPtr ctxt,
        * @ctxt:  an XSLT processing context
        * @node:  The current node
        * @inst:  the instruction in the stylesheet
      - * @comp:  precomputed information
      + * @castedComp:  precomputed information
        *
        * Process an EXSLT/XSLT-1.1 document element
        */
      @@ -3686,7 +3687,7 @@ xsltSort(xsltTransformContextPtr ctxt,
        * @ctxt:  an XSLT process context
        * @node:  the node in the source tree
        * @inst:  the element node of the XSLT-copy instruction
      - * @comp:  computed information of the XSLT-copy instruction
      + * @castedComp:  computed information of the XSLT-copy instruction
        *
        * Execute the XSLT-copy instruction on the source node.
        */
      @@ -3842,7 +3843,7 @@ xsltText(xsltTransformContextPtr ctxt, xmlNodePtr node ATTRIBUTE_UNUSED,
        * @ctxt:  a XSLT process context
        * @node:  the node in the source tree.
        * @inst:  the xslt element node
      - * @comp:  precomputed information
      + * @castedComp:  precomputed information
        *
        * Process the xslt element node on the source node
        */
      @@ -4075,7 +4076,7 @@ xsltComment(xsltTransformContextPtr ctxt, xmlNodePtr node,
        * @ctxt:  a XSLT process context
        * @node:  the node in the source tree.
        * @inst:  the xslt processing-instruction node
      - * @comp:  precomputed information
      + * @castedComp:  precomputed information
        *
        * Process the xslt processing-instruction node on the source node
        */
      @@ -4141,7 +4142,7 @@ error:
        * @ctxt:  an XSLT transformation context
        * @node:  the current node in the source tree
        * @inst:  the element node of the XSLT copy-of instruction 
      - * @comp:  precomputed information of the XSLT copy-of instruction
      + * @castedComp:  precomputed information of the XSLT copy-of instruction
        *
        * Process the XSLT copy-of instruction.
        */
      @@ -4305,6 +4306,7 @@ xsltCopyOf(xsltTransformContextPtr ctxt, xmlNodePtr node,
       		    */
       		    xsltCopyTextString(ctxt, ctxt->insert, value, 0);
       		}
      +		xmlFree(value);
       		
       #ifdef WITH_XSLT_DEBUG_PROCESS
       		XSLT_TRACE(ctxt,XSLT_TRACE_COPY_OF,xsltGenericDebug(xsltGenericDebugContext,
      @@ -4325,7 +4327,7 @@ xsltCopyOf(xsltTransformContextPtr ctxt, xmlNodePtr node,
        * @ctxt:  a XSLT process context
        * @node:  the node in the source tree.
        * @inst:  the xslt value-of node
      - * @comp:  precomputed information
      + * @castedComp:  precomputed information
        *
        * Process the xslt value-of node on the source node
        */
      @@ -4441,7 +4443,7 @@ error:
        * @ctxt:  a XSLT process context
        * @node:  the node in the source tree.
        * @inst:  the xslt number node
      - * @comp:  precomputed information
      + * @castedComp:  precomputed information
        *
        * Process the xslt number node on the source node
        */
      @@ -4539,7 +4541,7 @@ xsltApplyImports(xsltTransformContextPtr ctxt, xmlNodePtr contextNode,
        * @ctxt:  a XSLT transformation context
        * @node:  the "current node" in the source tree
        * @inst:  the XSLT 'call-template' instruction
      - * @comp:  the compiled information of the instruction
      + * @castedComp:  the compiled information of the instruction
        *
        * Processes the XSLT call-template instruction on the source node.
        */
      @@ -4642,7 +4644,7 @@ xsltCallTemplate(xsltTransformContextPtr ctxt, xmlNodePtr node,
        * @ctxt:  a XSLT transformation context
        * @node:  the 'current node' in the source tree
        * @inst:  the element node of an XSLT 'apply-templates' instruction
      - * @comp:  the compiled instruction
      + * @castedComp:  the compiled instruction
        *
        * Processes the XSLT 'apply-templates' instruction on the current node.
        */
      @@ -5227,7 +5229,7 @@ error:
        * @ctxt:  a XSLT process context
        * @contextNode:  the current node in the source tree
        * @inst:  the xsl:if instruction
      - * @comp:  compiled information of the instruction
      + * @castedComp:  compiled information of the instruction
        *
        * Processes the xsl:if instruction on the source node.
        */
      @@ -5408,9 +5410,9 @@ error:
       /**
        * xsltForEach:
        * @ctxt:  an XSLT transformation context
      - * @node:  the "current node" in the source tree  
      + * @contextNode:  the "current node" in the source tree  
        * @inst:  the element node of the xsl:for-each instruction
      - * @comp:  the compiled information of the instruction
      + * @castedComp:  the compiled information of the instruction
        *
        * Process the xslt for-each node on the source node
        */
      diff --git a/libxslt/variables.c b/libxslt/variables.c
      index b9c966f..1cdfa80 100644
      --- a/libxslt/variables.c
      +++ b/libxslt/variables.c
      @@ -225,7 +225,7 @@ xsltExtensionInstructionResultFinalize(xsltTransformContextPtr ctxt)
       /**
        * xsltExtensionInstructionResultRegister:
        * @ctxt: an XSLT transformation context
      - * @nodeSet: a node set to be inspected for result tree fragments
      + * @obj: an XPath object to be inspected for result tree fragments
        *
        * Marks the result of a value-returning extension instruction
        * in order to avoid it being garbage collected before the
      diff --git a/libxslt/xslt.c b/libxslt/xslt.c
      index 394087a..bead6db 100644
      --- a/libxslt/xslt.c
      +++ b/libxslt/xslt.c
      @@ -6409,7 +6409,7 @@ xsltParseStylesheetProcess(xsltStylesheetPtr ret, xmlDocPtr doc) {
       /**
        * xsltParseStylesheetImportedDoc:
        * @doc:  an xmlDoc parsed XML
      - * @style: pointer to the parent stylesheet (if it exists)
      + * @parentStyle: pointer to the parent stylesheet (if it exists)
        *
        * parse an XSLT stylesheet building the associated structures
        * except the processing not needed for imported documents.
      @@ -6850,7 +6850,7 @@ xsltLoadStylesheetPI(xmlDocPtr doc) {
       		fake = xmlNewDoc(NULL);
       		if (fake != NULL) {
                           /*
      -		     * the dictionnary should be shared since nodes are
      +		     * the dictionary should be shared since nodes are
       		     * moved over.
       		     */
       		    fake->dict = doc->dict;
      diff --git a/libxslt/xsltInternals.h b/libxslt/xsltInternals.h
      index 0272a5b..5c8320d 100644
      --- a/libxslt/xsltInternals.h
      +++ b/libxslt/xsltInternals.h
      @@ -104,7 +104,7 @@ extern const xmlChar *xsltXSLTAttrMarker;
       /* #define XSLT_REFACTORED_XSLT_NSCOMP */
       
       /**
      - * XSLT_REFACTORED_XPATHCOMP
      + * XSLT_REFACTORED_XPATHCOMP:
        *
        * Internal define to enable the optimization of the
        * compilation of XPath expressions.
      @@ -133,19 +133,39 @@ extern const xmlChar *xsltConstNamespaceNameXSLT;
           (((a) != NULL) && ((a)->ns != NULL) && \
           ((a)->ns->href == xsltConstNamespaceNameXSLT))
       
      +/**
      + * XSLT_HAS_INTERNAL_NSMAP:
      + *
      + * check for namespace mapping
      + */
       #define XSLT_HAS_INTERNAL_NSMAP(s) \
           (((s) != NULL) && ((s)->principal) && \
            ((s)->principal->principalData) && \
            ((s)->principal->principalData->nsMap))
       
      +/**
      + * XSLT_GET_INTERNAL_NSMAP:
      + *
      + * get pointer to namespace map
      + */
       #define XSLT_GET_INTERNAL_NSMAP(s) ((s)->principal->principalData->nsMap)
       
       #else /* XSLT_REFACTORED_XSLT_NSCOMP */
       
      +/**
      + * IS_XSLT_ELEM_FAST:
      + *
      + * quick check whether this is an xslt element
      + */
       #define IS_XSLT_ELEM_FAST(n) \
           (((n) != NULL) && ((n)->ns != NULL) && \
            (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
       
      +/**
      + * IS_XSLT_ATTR_FAST:
      + *
      + * quick check for xslt namespace attribute
      + */
       #define IS_XSLT_ATTR_FAST(a) \
           (((a) != NULL) && ((a)->ns != NULL) && \
            (xmlStrEqual((a)->ns->href, XSLT_NAMESPACE)))
      @@ -1273,6 +1293,11 @@ struct _xsltCompilerNodeInfo {
           xsltStyleType curChildType;    
       };
       
      +/**
      + * XSLT_CCTXT:
      + *
      + * get pointer to compiler context
      + */
       #define XSLT_CCTXT(style) ((xsltCompilerCtxtPtr) style->compCtxt) 
       
       typedef enum {
      @@ -1732,7 +1757,7 @@ struct _xsltTransformContext {
           int parserOptions;			/* parser options xmlParserOption */
       
           /*
      -     * dictionnary: shared between stylesheet, context and documents.
      +     * dictionary: shared between stylesheet, context and documents.
            */
           xmlDictPtr dict;
           xmlDocPtr		tmpDoc; /* Obsolete; not used in the library. */
      diff --git a/libxslt/xsltutils.c b/libxslt/xsltutils.c
      index ea75c6a..7f37fdc 100644
      --- a/libxslt/xsltutils.c
      +++ b/libxslt/xsltutils.c
      @@ -76,7 +76,7 @@
        * default declaration values unless DTD use has been turned off.
        *
        * Returns the attribute value or NULL if not found. The string is allocated
      - *         in the stylesheet dictionnary.
      + *         in the stylesheet dictionary.
        */
       const xmlChar *
       xsltGetCNsProp(xsltStylesheetPtr style, xmlNodePtr node,
      @@ -347,6 +347,7 @@ xsltPointerListAddSize(xsltPointerListPtr list,
       
       /**
        * xsltPointerListCreate:
      + * @initialSize: the initial size for the list
        *
        * Creates an xsltPointerList structure.
        *
      @@ -373,6 +374,7 @@ xsltPointerListCreate(int initialSize)
       
       /**
        * xsltPointerListFree:
      + * @list: pointer to the list to be freed
        *
        * Frees the xsltPointerList structure. This does not free
        * the content of the list.
      @@ -388,7 +390,8 @@ xsltPointerListFree(xsltPointerListPtr list)
       }
       
       /**
      - * xsltPointerListFree:
      + * xsltPointerListClear:
      + * @list: pointer to the list to be cleared
        *
        * Resets the list, but does not free the allocated array
        * and does not free the content of the list.
      @@ -717,11 +720,11 @@ xsltTransformError(xsltTransformContextPtr ctxt,
       
       /**
        * xsltSplitQName:
      - * @dict: a dictionnary
      + * @dict: a dictionary
        * @name:  the full QName
        * @prefix: the return value
        *
      - * Split QNames into prefix and local names, both allocated from a dictionnary.
      + * Split QNames into prefix and local names, both allocated from a dictionary.
        *
        * Returns: the localname or NULL in case of error.
        */
      diff --git a/python/libxslt-python-api.xml b/python/libxslt-python-api.xml
      index fc35e5d..49491f3 100644
      --- a/python/libxslt-python-api.xml
      +++ b/python/libxslt-python-api.xml
      @@ -58,7 +58,7 @@
             
             
             
      -      
      +      
             
           
           
      @@ -66,7 +66,7 @@
             
             
             
      -      
      +      
           
           
             Register a Python written function to for error reporting. The function is called back as f(ctx, error).
      diff --git a/python/libxslt.c b/python/libxslt.c
      index 182dbcb..1819383 100644
      --- a/python/libxslt.c
      +++ b/python/libxslt.c
      @@ -561,8 +561,8 @@ pythonDocLoaderFuncWrapper(const xmlChar * URI, xmlDictPtr dict, int options,
       	     * The return value should be the document
                    * Should we test it somehow before getting the C object from it?
       	     */
      -            PyObject *py_doc = PyObject_GetAttrString(result, "_o");
      -            doc = PyxmlNode_Get(py_doc);
      +            PyObject *py_doc = PyObject_GetAttrString(result, (char *) "_o");
      +            doc = (xmlDocPtr) PyxmlNode_Get(py_doc);
                   /* do we have to DECCREF the result?? */
               }
           }
      diff --git a/tests/exslt/strings/Makefile.am b/tests/exslt/strings/Makefile.am
      index 6926802..5bdbd2a 100644
      --- a/tests/exslt/strings/Makefile.am
      +++ b/tests/exslt/strings/Makefile.am
      @@ -7,7 +7,8 @@ EXTRA_DIST = 						\
       	tokenize.1.xml tokenize.1.xsl tokenize.1.out	\
       	tokenize.2.xml tokenize.2.xsl tokenize.2.out	\
       	tokenize.3.xml tokenize.3.xsl tokenize.3.out	\
      -	split.1.xml split.1.xsl split.1.out
      +	split.1.xml split.1.xsl split.1.out \
      +	replace.1.xml replace.1.xsl replace.1.out 
       
       all:
       
      diff --git a/tests/exslt/strings/replace.1.out b/tests/exslt/strings/replace.1.out
      new file mode 100644
      index 0000000..076d110
      --- /dev/null
      +++ b/tests/exslt/strings/replace.1.out
      @@ -0,0 +1,22 @@
      +
      +;
      +	str:replace('a, simple, list', ', ', '-')
      +	a-simple-list
      +
      +	str:replace('a, simple, list', 'a, ', 'the ')
      +	the simple, list
      +
      +	str:replace('a, simple, list', 'list', 'array')
      +	a, simple, array
      +
      +	str:replace('a, simple, list', 'i', 'I')
      +	a, sImple, lIst
      +
      +	str:replace('a, simple, list', ', ', '')
      +	asimplelist
      +
      +	str:replace('fee, fi, fo, fum', $x, $y)
      +	tee, eye, billow, a longer string
      +
      +	str:replace('fee, fi, fo, fum', $x, 'j')
      +	j, j, j, j
      diff --git a/tests/exslt/strings/replace.1.xml b/tests/exslt/strings/replace.1.xml
      new file mode 100644
      index 0000000..6371161
      --- /dev/null
      +++ b/tests/exslt/strings/replace.1.xml
      @@ -0,0 +1,12 @@
      +
      +	
      +		fee
      +		fi
      +		fo
      +		fum
      +		tee
      +		eye
      +		billow
      +		a longer string
      +	
      +
      diff --git a/tests/exslt/strings/replace.1.xsl b/tests/exslt/strings/replace.1.xsl
      new file mode 100644
      index 0000000..0c9e86c
      --- /dev/null
      +++ b/tests/exslt/strings/replace.1.xsl
      @@ -0,0 +1,36 @@
      +
      +
      +
      +
      +	
      +	
      +
      +;
      +	str:replace('a, simple, list', ', ', '-')
      +	
      +
      +	str:replace('a, simple, list', 'a, ', 'the ')
      +	
      +
      +	str:replace('a, simple, list', 'list', 'array')
      +	
      +
      +	str:replace('a, simple, list', 'i', 'I')
      +	
      +
      +	str:replace('a, simple, list', ', ', '')
      +	
      +
      +	str:replace('fee, fi, fo, fum', $x, $y)
      +	
      +
      +	str:replace('fee, fi, fo, fum', $x, 'j')
      +	
      +
      +
      +
      +
      +
      diff --git a/win32/libxslt.def.src b/win32/libxslt.def.src
      index 897c009..fb18040 100644
      --- a/win32/libxslt.def.src
      +++ b/win32/libxslt.def.src
      @@ -137,6 +137,8 @@ xsltKeyFunction
       xsltLoadDocument
       xsltLoadStyleDocument
       xsltLoadStylesheetPI
      +xsltLocalVariablePop
      +xsltLocalVariablePush
       /*xsltMatchPattern*/
       xsltMessage
       xsltNamespaceAlias