severity 448205 wishlist tags 448205 + patch kthxbyeI created a patch to implement the saxon:systemId function. It has been tested and works with the DocBook stylesheets. The patch is attached and should be applied to saxon.c in the libexslt directory.
-- brian m. carlson / brian with sandals: Houston, Texas, US +1 713 440 7475 | http://crustytoothpaste.ath.cx/~bmc | My opinion only a typesetting engine: http://crustytoothpaste.ath.cx/~bmc/code/thwack OpenPGP: RSA v4 4096b 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
--- saxon.c.orig 2007-10-26 23:00:56.000000000 +0000 +++ saxon.c 2007-10-26 23:21:39.000000000 +0000 @@ -180,6 +180,25 @@ } /** + * exsltSaxonSystemIdFunction: + * @ctxt: an XPath parser context + * @nargs: number of arguments + * + * Implements the SAXON systemId() function + * string saxon:systemId () + * This function returns the system ID of the document being styled. + */ +static void +exsltSaxonSystemIdFunction (xmlXPathParserContextPtr ctxt, int nargs) { + if (nargs != 0) { + xmlXPathSetArityError(ctxt); + return; + } + + valuePush(ctxt, xmlXPathNewString(ctxt->context->doc->URL)); +} + +/** * exsltSaxonLineNumberFunction: * @ctxt: an XPath parser context * @nargs: number of arguments @@ -264,4 +283,7 @@ xsltRegisterExtModuleFunction ((const xmlChar *) "line-number", SAXON_NAMESPACE, exsltSaxonLineNumberFunction); + xsltRegisterExtModuleFunction ((const xmlChar *) "systemId", + SAXON_NAMESPACE, + exsltSaxonSystemIdFunction); }
signature.asc
Description: Digital signature