mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-13 11:10:13 +01:00
50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
#include "txAtoms.h"
|
|
#include "XSLTFunctions.h"
|
|
#include "txExecutionState.h"
|
|
|
|
/*
|
|
Implementation of XSLT 1.0 extension function: current
|
|
*/
|
|
|
|
/**
|
|
* Creates a new current function call
|
|
**/
|
|
CurrentFunctionCall::CurrentFunctionCall()
|
|
{
|
|
}
|
|
|
|
/*
|
|
* Evaluates this Expr
|
|
*
|
|
* @return NodeSet containing the context node used for the complete
|
|
* Expr or Pattern.
|
|
*/
|
|
nsresult
|
|
CurrentFunctionCall::evaluate(txIEvalContext* aContext, txAExprResult** aResult)
|
|
{
|
|
*aResult = nsnull;
|
|
|
|
if (!requireParams(0, 0, aContext))
|
|
return NS_ERROR_XPATH_BAD_ARGUMENT_COUNT;
|
|
|
|
txExecutionState* es =
|
|
NS_STATIC_CAST(txExecutionState*, aContext->getPrivateContext());
|
|
if (!es) {
|
|
NS_ASSERTION(0,
|
|
"called xslt extension function \"current\" with wrong context");
|
|
return NS_ERROR_UNEXPECTED;
|
|
}
|
|
return aContext->recycler()->getNodeSet(
|
|
es->getEvalContext()->getContextNode(), aResult);
|
|
}
|
|
|
|
#ifdef TX_TO_STRING
|
|
nsresult
|
|
CurrentFunctionCall::getNameAtom(nsIAtom** aAtom)
|
|
{
|
|
*aAtom = txXSLTAtoms::current;
|
|
NS_ADDREF(*aAtom);
|
|
return NS_OK;
|
|
}
|
|
#endif
|