diff options
| author | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-07-24 11:48:31 +0000 | 
|---|---|---|
| committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-07-24 11:48:31 +0000 | 
| commit | 171e81205e357e0d54283a63997ed58ff97d54a9 (patch) | |
| tree | 2fe6f4cb440569e07d151564446433fb84b83839 /plugins/Variables/src/libxslt | |
| parent | 1e92bf5cf72665b5fec103a0a70d734340725539 (diff) | |
UserInfoEx, Variables: changed folder structure 
git-svn-id: http://svn.miranda-ng.org/main/trunk@1160 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Variables/src/libxslt')
| -rw-r--r-- | plugins/Variables/src/libxslt/numbersInternals.h | 69 | ||||
| -rw-r--r-- | plugins/Variables/src/libxslt/transform.h | 191 | ||||
| -rw-r--r-- | plugins/Variables/src/libxslt/win32config.h | 96 | ||||
| -rw-r--r-- | plugins/Variables/src/libxslt/xslt.h | 97 | ||||
| -rw-r--r-- | plugins/Variables/src/libxslt/xsltInternals.h | 609 | ||||
| -rw-r--r-- | plugins/Variables/src/libxslt/xsltexports.h | 106 | ||||
| -rw-r--r-- | plugins/Variables/src/libxslt/xsltutils.h | 240 | ||||
| -rw-r--r-- | plugins/Variables/src/libxslt/xsltwin32config.h | 84 | 
8 files changed, 1492 insertions, 0 deletions
| diff --git a/plugins/Variables/src/libxslt/numbersInternals.h b/plugins/Variables/src/libxslt/numbersInternals.h new file mode 100644 index 0000000000..8707789521 --- /dev/null +++ b/plugins/Variables/src/libxslt/numbersInternals.h @@ -0,0 +1,69 @@ +/* + * numbers.h: Implementation of the XSLT number functions + * + * See Copyright for the status of this software. + * + * daniel@veillard.com + * Bjorn Reese <breese@users.sourceforge.net> + */ + +#ifndef __XML_XSLT_NUMBERSINTERNALS_H__ +#define __XML_XSLT_NUMBERSINTERNALS_H__ + +#include "libxml/tree.h" +#include "xsltexports.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * xsltNumberData: + * + * This data structure is just a wrapper to pass xsl:number data in. + */ +typedef struct _xsltNumberData xsltNumberData; +typedef xsltNumberData *xsltNumberDataPtr; +     +struct _xsltNumberData { +    xmlChar *level; +    xmlChar *count; +    xmlChar *from; +    xmlChar *value; +    xmlChar *format; +    int has_format; +    int digitsPerGroup; +    int groupingCharacter; +    int groupingCharacterLen; +    xmlDocPtr doc; +    xmlNodePtr node; + +    /* +     * accelerators +     */ +}; + +/** + * xsltFormatNumberInfo,: + * + * This data structure lists the various parameters needed to format numbers. + */ +typedef struct _xsltFormatNumberInfo xsltFormatNumberInfo; +typedef xsltFormatNumberInfo *xsltFormatNumberInfoPtr; + +struct _xsltFormatNumberInfo { +    int	    integer_hash;	/* Number of '#' in integer part */ +    int	    integer_digits;	/* Number of '0' in integer part */ +    int	    frac_digits;	/* Number of '0' in fractional part */ +    int	    frac_hash;		/* Number of '#' in fractional part */ +    int	    group;		/* Number of chars per display 'group' */ +    int     multiplier;		/* Scaling for percent or permille */ +    char    add_decimal;	/* Flag for whether decimal point appears in pattern */ +    char    is_multiplier_set;	/* Flag to catch multiple occurences of percent/permille */ +    char    is_negative_pattern;/* Flag for processing -ve prefix/suffix */ +}; + +#ifdef __cplusplus +} +#endif +#endif /* __XML_XSLT_NUMBERSINTERNALS_H__ */ diff --git a/plugins/Variables/src/libxslt/transform.h b/plugins/Variables/src/libxslt/transform.h new file mode 100644 index 0000000000..10d3d2d55a --- /dev/null +++ b/plugins/Variables/src/libxslt/transform.h @@ -0,0 +1,191 @@ +/* + * transform.h: Interfaces, constants and types related to the XSLT engine + *            transform part. + * + * See Copyright for the status of this software. + * + * daniel@veillard.com + */ + +#ifndef __XML_XSLT_TRANSFORM_H__ +#define __XML_XSLT_TRANSFORM_H__ + +#include "libxml/parser.h" +#include "libxml/xmlIO.h" +#include "xsltexports.h" +#include "libxslt/xsltInternals.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * XInclude default processing. + */ +XSLTPUBFUN void XSLTCALL		 +		xsltSetXIncludeDefault	(int xinclude); +XSLTPUBFUN int XSLTCALL		 +		xsltGetXIncludeDefault	(void); + +/** + * Export context to users. + */ +XSLTPUBFUN xsltTransformContextPtr XSLTCALL  +		xsltNewTransformContext	(xsltStylesheetPtr style, +					 xmlDocPtr doc); + +XSLTPUBFUN void XSLTCALL			 +		xsltFreeTransformContext(xsltTransformContextPtr ctxt); + +XSLTPUBFUN xmlDocPtr XSLTCALL		 +		xsltApplyStylesheetUser	(xsltStylesheetPtr style, +					 xmlDocPtr doc, +					 const char **params, +					 const char *output, +					 FILE * profile, +					 xsltTransformContextPtr userCtxt); +/** + * Private Interfaces. + */ +XSLTPUBFUN void XSLTCALL		 +		xsltApplyStripSpaces	(xsltTransformContextPtr ctxt, +					 xmlNodePtr node); +XSLTPUBFUN xmlDocPtr XSLTCALL	 +		xsltApplyStylesheet	(xsltStylesheetPtr style, +					 xmlDocPtr doc, +					 const char **params); +XSLTPUBFUN xmlDocPtr XSLTCALL	 +		xsltProfileStylesheet	(xsltStylesheetPtr style, +					 xmlDocPtr doc, +					 const char **params, +					 FILE * output); +XSLTPUBFUN int XSLTCALL		 +		xsltRunStylesheet	(xsltStylesheetPtr style, +					 xmlDocPtr doc, +					 const char **params, +					 const char *output, +					 xmlSAXHandlerPtr SAX, +					 xmlOutputBufferPtr IObuf); +XSLTPUBFUN int XSLTCALL		 +		xsltRunStylesheetUser	(xsltStylesheetPtr style, +					 xmlDocPtr doc, +					 const char **params, +					 const char *output, +					 xmlSAXHandlerPtr SAX, +					 xmlOutputBufferPtr IObuf, +					 FILE * profile, +					 xsltTransformContextPtr userCtxt); +XSLTPUBFUN void XSLTCALL		 +		xsltApplyOneTemplate	(xsltTransformContextPtr ctxt, +					 xmlNodePtr node, +					 xmlNodePtr list, +					 xsltTemplatePtr templ, +					 xsltStackElemPtr params); +XSLTPUBFUN void XSLTCALL 		 +		xsltDocumentElem	(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltSort		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltCopy		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltText		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltElement		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltComment		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltAttribute		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltProcessingInstruction(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltCopyOf		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltValueOf		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltNumber		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltApplyImports	(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltCallTemplate	(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltApplyTemplates	(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltChoose		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltIf			(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL 		 +		xsltForEach		(xsltTransformContextPtr ctxt, +	                                 xmlNodePtr node, +					 xmlNodePtr inst, +					 xsltStylePreCompPtr comp); +XSLTPUBFUN void XSLTCALL		 +		xsltRegisterAllElement	(xsltTransformContextPtr ctxt); + +XSLTPUBFUN xmlNodePtr XSLTCALL	 +		xsltCopyTextString	(xsltTransformContextPtr ctxt, +					 xmlNodePtr target, +					 const xmlChar *string, +					 int noescape); +/* + * Hook for the debugger if activated. + */ +XSLTPUBFUN void XSLTCALL		 +		xslHandleDebugger	(xmlNodePtr cur, +					 xmlNodePtr node, +					 xsltTemplatePtr templ, +					 xsltTransformContextPtr ctxt); + +#ifdef __cplusplus +} +#endif + +#endif /* __XML_XSLT_TRANSFORM_H__ */ + diff --git a/plugins/Variables/src/libxslt/win32config.h b/plugins/Variables/src/libxslt/win32config.h new file mode 100644 index 0000000000..249408b54a --- /dev/null +++ b/plugins/Variables/src/libxslt/win32config.h @@ -0,0 +1,96 @@ +#ifndef __LIBXSLT_WIN32_CONFIG__ +#define __LIBXSLT_WIN32_CONFIG__ + +#define HAVE_CTYPE_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_TIME_H 1 +#define HAVE_LOCALTIME 1 +#define HAVE_GMTIME 1 +#define HAVE_TIME 1 +#define HAVE_MATH_H 1 +#define HAVE_FCNTL_H 1 + +#include <io.h> + +#define HAVE_ISINF +#define HAVE_ISNAN + +#include <math.h> +#ifdef _MSC_VER +/* MS C-runtime has functions which can be used in order to determine if +   a given floating-point variable contains NaN, (+-)INF. These are  +   preferred, because floating-point technology is considered propriatary +   by MS and we can assume that their functions know more about their  +   oddities than we do. */ +#include <float.h> +/* Bjorn Reese figured a quite nice construct for isinf() using the  +   _fpclass() function. */ +#ifndef isinf +#define isinf(d) ((_fpclass(d) == _FPCLASS_PINF) ? 1 \ +	: ((_fpclass(d) == _FPCLASS_NINF) ? -1 : 0)) +#endif +/* _isnan(x) returns nonzero if (x == NaN) and zero otherwise. */ +#ifndef isnan +#define isnan(d) (_isnan(d)) +#endif +#else /* _MSC_VER */ +static int isinf (double d) { +    int expon = 0; +    double val = frexp (d, &expon); +    if (expon == 1025) { +        if (val == 0.5) { +            return 1; +        } else if (val == -0.5) { +            return -1; +        } else { +            return 0; +        } +    } else { +        return 0; +    } +} +static int isnan (double d) { +    int expon = 0; +    double val = frexp (d, &expon); +    if (expon == 1025) { +        if (val == 0.5) { +            return 0; +        } else if (val == -0.5) { +            return 0; +        } else { +            return 1; +        } +    } else { +        return 0; +    } +} +#endif /* _MSC_VER */ + +#include <direct.h> +#if defined(_MSC_VER) || defined(__MINGW32__) +#define mkdir(p,m) _mkdir(p) +#define snprintf _snprintf +#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a) +#endif + +#define HAVE_SYS_STAT_H +#define HAVE__STAT +#define HAVE_STRING_H + +#include "libxml/xmlversion.h" + +#if !defined LIBXSLT_PUBLIC +#if defined _MSC_VER && !defined IN_LIBXSLT && !defined LIBXSLT_STATIC +#define LIBXSLT_PUBLIC __declspec(dllimport) +#else +#define LIBXSLT_PUBLIC  +#endif +#endif + +#ifndef ATTRIBUTE_UNUSED +#define ATTRIBUTE_UNUSED +#endif + +#endif /* __LIBXSLT_WIN32_CONFIG__ */ + diff --git a/plugins/Variables/src/libxslt/xslt.h b/plugins/Variables/src/libxslt/xslt.h new file mode 100644 index 0000000000..4d3462fd25 --- /dev/null +++ b/plugins/Variables/src/libxslt/xslt.h @@ -0,0 +1,97 @@ +/* + * xslt.h: Interfaces, constants and types related to the XSLT engine + * + * See Copyright for the status of this software. + * + * daniel@veillard.com + */ + +#ifndef __XML_XSLT_H__ +#define __XML_XSLT_H__ + +#include "libxml/tree.h" +#include "xsltexports.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * XSLT_DEFAULT_VERSION: + * + * The default version of XSLT supported. + */ +#define XSLT_DEFAULT_VERSION     "1.0" + +/** + * XSLT_DEFAULT_VENDOR: + * + * The XSLT "vendor" string for this processor. + */ +#define XSLT_DEFAULT_VENDOR      "libxslt" + +/** + * XSLT_DEFAULT_URL: + * + * The XSLT "vendor" URL for this processor. + */ +#define XSLT_DEFAULT_URL         "http://xmlsoft.org/XSLT/" + +/** + * XSLT_NAMESPACE: + * + * The XSLT specification namespace. + */ +#define XSLT_NAMESPACE ((xmlChar *) "http://www.w3.org/1999/XSL/Transform") + +#if LIBXML_VERSION >= 20600 +/** + * XSLT_PARSE_OPTIONS: + * + * The set of options to pass to an xmlReadxxx when loading files for + * XSLT consumption. + */ +#define XSLT_PARSE_OPTIONS \ + XML_PARSE_NOENT | XML_PARSE_DTDLOAD | XML_PARSE_DTDATTR | XML_PARSE_NOCDATA +#endif + +/** + * xsltMaxDepth: + * + * This value is used to detect templates loops. + */ +XSLTPUBVAR int xsltMaxDepth; + +/** + * xsltEngineVersion: + * + * The version string for libxslt. + */ +XSLTPUBVAR const char *xsltEngineVersion; + +/** + * xsltLibxsltVersion: + * + * The version of libxslt compiled. + */ +XSLTPUBVAR const int xsltLibxsltVersion; + +/** + * xsltLibxmlVersion: + * + * The version of libxml libxslt was compiled against. + */ +XSLTPUBVAR const int xsltLibxmlVersion; + +/* + * Global cleanup function. + */ +XSLTPUBFUN void XSLTCALL	 +		xsltCleanupGlobals	(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __XML_XSLT_H__ */ + diff --git a/plugins/Variables/src/libxslt/xsltInternals.h b/plugins/Variables/src/libxslt/xsltInternals.h new file mode 100644 index 0000000000..78b80661da --- /dev/null +++ b/plugins/Variables/src/libxslt/xsltInternals.h @@ -0,0 +1,609 @@ +/* + * xsltInternals.h: internal data structures, constants and functions used + *                  by the XSLT engine. + *                  They are not part of the API or ABI, i.e. they can change + *                  without prior notice, use carefully. + * + * See Copyright for the status of this software. + * + * daniel@veillard.com + */ + +#ifndef __XML_XSLT_INTERNALS_H__ +#define __XML_XSLT_INTERNALS_H__ + +#include "libxml/tree.h" +#include "libxml/hash.h" +#include "libxml/xpath.h" +#include "libxml/xmlerror.h" +#include "libxslt/xslt.h" +#include "xsltexports.h" +#include "numbersInternals.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * XSLT_MAX_SORT: + * + * Max number of specified xsl:sort on an element. + */ +#define XSLT_MAX_SORT 15 + +/** + * XSLT_PAT_NO_PRIORITY: + * + * Specific value for pattern without priority expressed. + */ +#define XSLT_PAT_NO_PRIORITY -12345789 + +/** + * xsltRuntimeExtra: + * + * Extra information added to the transformation context. + */ +typedef struct _xsltRuntimeExtra xsltRuntimeExtra; +typedef xsltRuntimeExtra *xsltRuntimeExtraPtr; +struct _xsltRuntimeExtra { +    void       *info;		/* pointer to the extra data */ +    xmlFreeFunc deallocate;	/* pointer to the deallocation routine */ +    void       *val;		/* data not needing deallocation */ +}; + +/** + * XSLT_RUNTIME_EXTRA_LST: + * @ctxt: the transformation context + * @nr: the index + * + * Macro used to access extra information stored in the context + */ +#define XSLT_RUNTIME_EXTRA_LST(ctxt, nr) (ctxt)->extras[(nr)].info +/** + * XSLT_RUNTIME_EXTRA_FREE: + * @ctxt: the transformation context + * @nr: the index + * + * Macro used to free extra information stored in the context + */ +#define XSLT_RUNTIME_EXTRA_FREE(ctxt, nr) (ctxt)->extras[(nr)].deallocate +/** + * XSLT_RUNTIME_EXTRA: + * @ctxt: the transformation context + * @nr: the index + * + * Macro used to define extra information stored in the context + */ +#define	XSLT_RUNTIME_EXTRA(ctxt, nr) (ctxt)->extras[(nr)].val + +/** + * xsltTemplate: + * + * The in-memory structure corresponding to an XSLT Template. + */ +typedef struct _xsltTemplate xsltTemplate; +typedef xsltTemplate *xsltTemplatePtr; +struct _xsltTemplate { +    struct _xsltTemplate *next;/* chained list sorted by priority */ +    struct _xsltStylesheet *style;/* the containing stylesheet */ +    xmlChar *match;	/* the matching string */ +    float priority;	/* as given from the stylesheet, not computed */ +    xmlChar *name;	/* the local part of the name QName */ +    xmlChar *nameURI;	/* the URI part of the name QName */ +    xmlChar *mode;	/* the local part of the mode QName */ +    xmlChar *modeURI;	/* the URI part of the mode QName */ +    xmlNodePtr content;	/* the template replacement value */ +    xmlNodePtr elem;	/* the source element */ + +    int inheritedNsNr;  /* number of inherited namespaces */ +    xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */ + +    /* Profiling informations */ +    int nbCalls;        /* the number of time the template was called */ +    unsigned long time; /* the time spent in this template */ +}; + +/** + * xsltDecimalFormat: + * + * Data structure of decimal-format. + */ +typedef struct _xsltDecimalFormat xsltDecimalFormat; +typedef xsltDecimalFormat *xsltDecimalFormatPtr; +struct _xsltDecimalFormat { +    struct _xsltDecimalFormat *next; /* chained list */ +    xmlChar *name; +    /* Used for interpretation of pattern */ +    xmlChar *digit; +    xmlChar *patternSeparator; +    /* May appear in result */ +    xmlChar *minusSign; +    xmlChar *infinity; +    xmlChar *noNumber; /* Not-a-number */ +    /* Used for interpretation of pattern and may appear in result */ +    xmlChar *decimalPoint; +    xmlChar *grouping; +    xmlChar *percent; +    xmlChar *permille; +    xmlChar *zeroDigit; +}; + +/** + * xsltDocument: + * + * Data structure associated to a parsed document. + */ + +typedef struct _xsltDocument xsltDocument; +typedef xsltDocument *xsltDocumentPtr; +struct _xsltDocument { +    struct _xsltDocument *next;	/* documents are kept in a chained list */ +    int main;			/* is this the main document */ +    xmlDocPtr doc;		/* the parsed document */ +    void *keys;			/* key tables storage */ +}; + +typedef struct _xsltTransformContext xsltTransformContext; +typedef xsltTransformContext *xsltTransformContextPtr; + +/** + * xsltElemPreComp: + * + * The in-memory structure corresponding to element precomputed data, + * designed to be extended by extension implementors. + */ +typedef struct _xsltElemPreComp xsltElemPreComp; +typedef xsltElemPreComp *xsltElemPreCompPtr; + +/** + * xsltTransformFunction: + * @ctxt: the XSLT transformation context + * @node: the input node + * @inst: the stylesheet node + * @comp: the compiled information from the stylesheet + * + * Signature of the function associated to elements part of the + * stylesheet language like xsl:if or xsl:apply-templates. + */ +typedef void (*xsltTransformFunction) (xsltTransformContextPtr ctxt, +	                               xmlNodePtr node, +				       xmlNodePtr inst, +			               xsltElemPreCompPtr comp); + +/** + * xsltSortFunc: + * @ctxt:    a transformation context + * @sorts:   the node-set to sort + * @nbsorts: the number of sorts + * + * Signature of the function to use during sorting + */ +typedef void (*xsltSortFunc) (xsltTransformContextPtr ctxt, xmlNodePtr *sorts, +			      int nbsorts); + +typedef enum { +    XSLT_FUNC_COPY=1, +    XSLT_FUNC_SORT, +    XSLT_FUNC_TEXT, +    XSLT_FUNC_ELEMENT, +    XSLT_FUNC_ATTRIBUTE, +    XSLT_FUNC_COMMENT, +    XSLT_FUNC_PI, +    XSLT_FUNC_COPYOF, +    XSLT_FUNC_VALUEOF, +    XSLT_FUNC_NUMBER, +    XSLT_FUNC_APPLYIMPORTS, +    XSLT_FUNC_CALLTEMPLATE, +    XSLT_FUNC_APPLYTEMPLATES, +    XSLT_FUNC_CHOOSE, +    XSLT_FUNC_IF, +    XSLT_FUNC_FOREACH, +    XSLT_FUNC_DOCUMENT, +    XSLT_FUNC_WITHPARAM, +    XSLT_FUNC_PARAM, +    XSLT_FUNC_VARIABLE, +    XSLT_FUNC_WHEN, +    XSLT_FUNC_EXTENSION +} xsltStyleType; + +/** + * xsltElemPreCompDeallocator: + * @comp:  the #xsltElemPreComp to free up + * + * Deallocates an #xsltElemPreComp structure. + */ +typedef void (*xsltElemPreCompDeallocator) (xsltElemPreCompPtr comp); + +/** + * xsltElemPreComp: + * + * The in-memory structure corresponding to element precomputed data, + * designed to be extended by extension implementors. + */ +struct _xsltElemPreComp { +    xsltElemPreCompPtr next;		/* chained list */ +    xsltStyleType type;			/* type of the element */ +    xsltTransformFunction func; 	/* handling function */ +    xmlNodePtr inst;			/* the instruction */ + +    /* end of common part */ +    xsltElemPreCompDeallocator free;	/* the deallocator */ +}; + +/** + * xsltStylePreComp: + * + * The in-memory structure corresponding to XSLT stylesheet constructs + * precomputed data. + */ +typedef struct _xsltStylePreComp xsltStylePreComp; + +typedef xsltStylePreComp *xsltStylePreCompPtr; + +struct _xsltStylePreComp { +    xsltElemPreCompPtr next;	/* chained list */ +    xsltStyleType type;		/* type of the element */ +    xsltTransformFunction func; /* handling function */ +    xmlNodePtr inst;		/* the instruction */ + +    /* +     * Pre computed values. +     */ + +    xmlChar *stype;             /* sort */ +    int      has_stype;		/* sort */ +    int      number;		/* sort */ +    xmlChar *order;             /* sort */ +    int      has_order;		/* sort */ +    int      descending;	/* sort */ +    xmlChar *lang;		/* sort */ +    int      has_lang;		/* sort */ +    xmlChar *case_order;	/* sort */ +    int      lower_first;	/* sort */ + +    xmlChar *use;		/* copy, element */ +    int      has_use;		/* copy, element */ + +    int      noescape;		/* text */ + +    xmlChar *name;		/* element, attribute, pi */ +    int      has_name;		/* element, attribute, pi */ +    xmlChar *ns;		/* element */ +    int      has_ns;		/* element */ + +    xmlChar *mode;		/* apply-templates */ +    xmlChar *modeURI;		/* apply-templates */ + +    xmlChar *test;		/* if */ + +    xsltTemplatePtr templ;	/* call-template */ + +    xmlChar *select;		/* sort, copy-of, value-of, apply-templates */ + +    int      ver11;		/* document */ +    xmlChar *filename;		/* document URL */ +    int      has_filename;	/* document */ + +    xsltNumberData numdata;	/* number */ + +    xmlXPathCompExprPtr comp;	/* a precompiled XPath expression */ +    xmlNsPtr *nsList;		/* the namespaces in scope */ +    int nsNr;			/* the number of namespaces in scope */ +}; + +/* + * The in-memory structure corresponding to an XSLT Variable + * or Param. + */ + +typedef struct _xsltStackElem xsltStackElem; +typedef xsltStackElem *xsltStackElemPtr; +struct _xsltStackElem { +    struct _xsltStackElem *next;/* chained list */ +    xsltStylePreCompPtr comp;   /* the compiled form */ +    int computed;	/* was the evaluation done */ +    xmlChar *name;	/* the local part of the name QName */ +    xmlChar *nameURI;	/* the URI part of the name QName */ +    xmlChar *select;	/* the eval string */ +    xmlNodePtr tree;	/* the tree if no eval string or the location */ +    xmlXPathObjectPtr value; /* The value if computed */ +}; + +/* + * The in-memory structure corresponding to an XSLT Stylesheet. + * NOTE: most of the content is simply linked from the doc tree + *       structure, no specific allocation is made. + */ +typedef struct _xsltStylesheet xsltStylesheet; +typedef xsltStylesheet *xsltStylesheetPtr; +struct _xsltStylesheet { +    /* +     * The stylesheet import relation is kept as a tree. +     */ +    struct _xsltStylesheet *parent; +    struct _xsltStylesheet *next; +    struct _xsltStylesheet *imports; + +    xsltDocumentPtr docList;		/* the include document list */ + +    /* +     * General data on the style sheet document. +     */ +    xmlDocPtr doc;		/* the parsed XML stylesheet */ +    xmlHashTablePtr stripSpaces;/* the hash table of the strip-space and +				   preserve space elements */ +    int             stripAll;	/* strip-space * (1) preserve-space * (-1) */ +    xmlHashTablePtr cdataSection;/* the hash table of the cdata-section */ + +    /* +     * Global variable or parameters. +     */ +    xsltStackElemPtr variables; /* linked list of param and variables */ + +    /* +     * Template descriptions. +     */ +    xsltTemplatePtr templates;	/* the ordered list of templates */ +    void *templatesHash;	/* hash table or wherever compiled templates +				   informations are stored */ +    void *rootMatch;		/* template based on / */ +    void *keyMatch;		/* template based on key() */ +    void *elemMatch;		/* template based on * */ +    void *attrMatch;		/* template based on @* */ +    void *parentMatch;		/* template based on .. */ +    void *textMatch;		/* template based on text() */ +    void *piMatch;		/* template based on processing-instruction() */ +    void *commentMatch;		/* template based on comment() */ +     +    /* +     * Namespace aliases. +     */ +    xmlHashTablePtr nsAliases;	/* the namespace alias hash tables */ + +    /* +     * Attribute sets. +     */ +    xmlHashTablePtr attributeSets;/* the attribute sets hash tables */ + +    /* +     * Namespaces. +     */ +    xmlHashTablePtr nsHash;     /* the set of namespaces in use */ +    void           *nsDefs;     /* the namespaces defined */ + +    /* +     * Key definitions. +     */ +    void *keys;				/* key definitions */ + +    /* +     * Output related stuff. +     */ +    xmlChar *method;		/* the output method */ +    xmlChar *methodURI;		/* associated namespace if any */ +    xmlChar *version;		/* version string */ +    xmlChar *encoding;		/* encoding string */ +    int omitXmlDeclaration;     /* omit-xml-declaration = "yes" | "no" */ + +    /*  +     * Number formatting. +     */ +    xsltDecimalFormatPtr decimalFormat; +    int standalone;             /* standalone = "yes" | "no" */ +    xmlChar *doctypePublic;     /* doctype-public string */ +    xmlChar *doctypeSystem;     /* doctype-system string */ +    int indent;			/* should output being indented */ +    xmlChar *mediaType;		/* media-type string */ + +    /* +     * Precomputed blocks. +     */ +    xsltElemPreCompPtr preComps;/* list of precomputed blocks */ +    int warnings;		/* number of warnings found at compilation */ +    int errors;			/* number of errors found at compilation */ + +    xmlChar  *exclPrefix;	/* last excluded prefixes */ +    xmlChar **exclPrefixTab;	/* array of excluded prefixes */ +    int       exclPrefixNr;	/* number of excluded prefixes in scope */ +    int       exclPrefixMax;	/* size of the array */ + +    void     *_private;		/* user defined data */ + +    /* +     * Extensions. +     */ +    xmlHashTablePtr extInfos;	/* the extension data */ +    int		    extrasNr;	/* the number of extras required */ +}; + +/* + * The in-memory structure corresponding to an XSLT Transformation. + */ +typedef enum { +    XSLT_OUTPUT_XML = 0, +    XSLT_OUTPUT_HTML, +    XSLT_OUTPUT_TEXT +} xsltOutputType; + +typedef enum { +    XSLT_STATE_OK = 0, +    XSLT_STATE_ERROR, +    XSLT_STATE_STOPPED +} xsltTransformState; + +struct _xsltTransformContext { +    xsltStylesheetPtr style;		/* the stylesheet used */ +    xsltOutputType type;		/* the type of output */ + +    xsltTemplatePtr  templ;		/* the current template */ +    int              templNr;		/* Nb of templates in the stack */ +    int              templMax;		/* Size of the templtes stack */ +    xsltTemplatePtr *templTab;		/* the template stack */ + +    xsltStackElemPtr  vars;		/* the current variable list */ +    int               varsNr;		/* Nb of variable list in the stack */ +    int               varsMax;		/* Size of the variable list stack */ +    xsltStackElemPtr *varsTab;		/* the variable list stack */ +    int               varsBase;		/* the var base for current templ */ + +    /* +     * Extensions +     */ +    xmlHashTablePtr   extFunctions;	/* the extension functions */ +    xmlHashTablePtr   extElements;	/* the extension elements */ +    xmlHashTablePtr   extInfos;		/* the extension data */ + +    const xmlChar *mode;		/* the current mode */ +    const xmlChar *modeURI;		/* the current mode URI */ + +    xsltDocumentPtr docList;		/* the document list */ + +    xsltDocumentPtr document;		/* the current document */ +    xmlNodePtr node;			/* the current node being processed */ +    xmlNodeSetPtr nodeList;		/* the current node list */ +    /* xmlNodePtr current;			the node */ + +    xmlDocPtr output;			/* the resulting document */ +    xmlNodePtr insert;			/* the insertion node */ + +    xmlXPathContextPtr xpathCtxt;	/* the XPath context */ +    xsltTransformState state;		/* the current state */ + +    /* +     * Global variables +     */ +    xmlHashTablePtr   globalVars;	/* the global variables and params */ + +    xmlNodePtr inst;			/* the instruction in the stylesheet */ + +    int xinclude;			/* should XInclude be processed */ + +    const char *      outputFile;	/* the output URI if known */ + +    int profile;                        /* is this run profiled */ +    long             prof;		/* the current profiled value */ +    int              profNr;		/* Nb of templates in the stack */ +    int              profMax;		/* Size of the templtaes stack */ +    long            *profTab;		/* the profile template stack */ + +    void            *_private;		/* user defined data */ + +    int              extrasNr;		/* the number of extras used */ +    int              extrasMax;		/* the number of extras allocated */ +    xsltRuntimeExtraPtr extras;		/* extra per runtime informations */ + +    xsltDocumentPtr  styleList;		/* the stylesheet docs list */ +    void                 * sec;		/* the security preferences if any */ + +    xmlGenericErrorFunc  error;		/* a specific error handler */ +    void              * errctx;		/* context for the error handler */ + +    xsltSortFunc      sortfunc;		/* a ctxt specific sort routine */ + +    /* +     * handling of temporary Result Value Tree +     */ +    xmlDocPtr       tmpRVT;		/* list of RVT without persistance */ +    xmlDocPtr       persistRVT;		/* list of persistant RVTs */ +    int             ctxtflags;          /* context processing flags */ + +    /* +     * Speed optimization when coalescing text nodes +     */ +    const xmlChar  *lasttext;		/* last text node content */ +    unsigned int    lasttsize;		/* last text node size */ +    unsigned int    lasttuse;		/* last text node use */ +}; + +/** + * CHECK_STOPPED: + * + * Macro to check if the XSLT processing should be stopped. + * Will return from the function. + */ +#define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return; + +/** + * CHECK_STOPPEDE: + * + * Macro to check if the XSLT processing should be stopped. + * Will goto the error: label. + */ +#define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error; + +/** + * CHECK_STOPPED0: + * + * Macro to check if the XSLT processing should be stopped. + * Will return from the function with a 0 value. + */ +#define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0); + +/* + * Functions associated to the internal types +xsltDecimalFormatPtr	xsltDecimalFormatGetByName(xsltStylesheetPtr sheet, +						   xmlChar *name); + */ +XSLTPUBFUN xsltStylesheetPtr XSLTCALL	 +			xsltNewStylesheet	(void); +XSLTPUBFUN xsltStylesheetPtr XSLTCALL	 +			xsltParseStylesheetFile	(const xmlChar* filename); +XSLTPUBFUN void XSLTCALL			 +			xsltFreeStylesheet	(xsltStylesheetPtr sheet); +XSLTPUBFUN int XSLTCALL			 +			xsltIsBlank		(xmlChar *str); +XSLTPUBFUN void XSLTCALL			 +			xsltFreeStackElemList	(xsltStackElemPtr elem); +XSLTPUBFUN xsltDecimalFormatPtr XSLTCALL	 +			xsltDecimalFormatGetByName(xsltStylesheetPtr sheet, +						 xmlChar *name); + +XSLTPUBFUN xsltStylesheetPtr XSLTCALL	 +			xsltParseStylesheetProcess(xsltStylesheetPtr ret, +						 xmlDocPtr doc); +XSLTPUBFUN void XSLTCALL			 +			xsltParseStylesheetOutput(xsltStylesheetPtr style, +						 xmlNodePtr cur); +XSLTPUBFUN xsltStylesheetPtr XSLTCALL	 +			xsltParseStylesheetDoc	(xmlDocPtr doc); +XSLTPUBFUN xsltStylesheetPtr XSLTCALL	 +			xsltParseStylesheetImportedDoc(xmlDocPtr doc); +XSLTPUBFUN xsltStylesheetPtr XSLTCALL	 +			xsltLoadStylesheetPI	(xmlDocPtr doc); +XSLTPUBFUN void XSLTCALL 			 +			xsltNumberFormat	(xsltTransformContextPtr ctxt, +						 xsltNumberDataPtr data, +						 xmlNodePtr node); +XSLTPUBFUN xmlXPathError XSLTCALL		  +			xsltFormatNumberConversion(xsltDecimalFormatPtr self, +						 xmlChar *format, +						 double number, +						 xmlChar **result); + +XSLTPUBFUN void XSLTCALL			 +			xsltParseTemplateContent(xsltStylesheetPtr style, +						 xmlNodePtr templ); +XSLTPUBFUN int XSLTCALL			 +			xsltAllocateExtra	(xsltStylesheetPtr style); +XSLTPUBFUN int XSLTCALL			 +			xsltAllocateExtraCtxt	(xsltTransformContextPtr ctxt); +/* + * Extra functions for Result Value Trees + */ +XSLTPUBFUN xmlDocPtr XSLTCALL		 +			xsltCreateRVT		(xsltTransformContextPtr ctxt); +XSLTPUBFUN int XSLTCALL			 +			xsltRegisterTmpRVT	(xsltTransformContextPtr ctxt, +						 xmlDocPtr RVT); +XSLTPUBFUN int XSLTCALL			 +			xsltRegisterPersistRVT	(xsltTransformContextPtr ctxt, +						 xmlDocPtr RVT); +XSLTPUBFUN void XSLTCALL			 +			xsltFreeRVTs		(xsltTransformContextPtr ctxt); +			 +#ifdef __cplusplus +} +#endif + +#endif /* __XML_XSLT_H__ */ + diff --git a/plugins/Variables/src/libxslt/xsltexports.h b/plugins/Variables/src/libxslt/xsltexports.h new file mode 100644 index 0000000000..aab58025b8 --- /dev/null +++ b/plugins/Variables/src/libxslt/xsltexports.h @@ -0,0 +1,106 @@ +/* + * xsltexports.h : macros for marking symbols as exportable/importable. + * + * See Copyright for the status of this software. + * + * igor@zlatkovic.com + */ + +#ifndef __XSLT_EXPORTS_H__ +#define __XSLT_EXPORTS_H__ + +/** + * XSLTPUBFUN: + * XSLTPUBFUN, XSLTPUBVAR, XSLTCALL + * + * Macros which declare an exportable function, an exportable variable and + * the calling convention used for functions. + * + * Please use an extra block for every platform/compiler combination when + * modifying this, rather than overlong #ifdef lines. This helps + * readability as well as the fact that different compilers on the same + * platform might need different definitions. + */ + +#define XSLTPUBFUN +#define XSLTPUBVAR extern +#define XSLTCALL + +/* Windows platform with MS compiler */ +#if defined(_WIN32) && defined(_MSC_VER) +  #undef XSLTPUBFUN +  #undef XSLTPUBVAR +  #undef XSLTCALL +  #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC) +    #define XSLTPUBFUN __declspec(dllexport) +    #define XSLTPUBVAR __declspec(dllexport) +  #else +    #define XSLTPUBFUN +    #if !defined(LIBXSLT_STATIC) +      #define XSLTPUBVAR __declspec(dllimport) extern +    #else +      #define XSLTPUBVAR extern +    #endif +  #endif +  #define XSLTCALL __cdecl +  #if !defined _REENTRANT +    #define _REENTRANT +  #endif +#endif + +/* Windows platform with Borland compiler */ +#if defined(_WIN32) && defined(__BORLANDC__) +  #undef XSLTPUBFUN +  #undef XSLTPUBVAR +  #undef XSLTCALL +  #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC) +    #define XSLTPUBFUN __declspec(dllexport) +    #define XSLTPUBVAR __declspec(dllexport) extern +  #else +    #define XSLTPUBFUN +    #if !defined(LIBXSLT_STATIC) +      #define XSLTPUBVAR __declspec(dllimport) extern +    #else +      #define XSLTPUBVAR extern +    #endif +  #endif +  #define XSLTCALL __cdecl +  #if !defined _REENTRANT +    #define _REENTRANT +  #endif +#endif + +/* Windows platform with GNU compiler (Mingw) */ +#if defined(_WIN32) && defined(__MINGW__) +  #if !defined _REENTRANT +    #define _REENTRANT +  #endif +#endif + +/* Cygwin platform, GNU compiler */ +#if defined(_WIN32) && defined(__CYGWIN__) +  #undef XSLTPUBFUN +  #undef XSLTPUBVAR +  #undef XSLTCALL +  #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC) +    #define XSLTPUBFUN __declspec(dllexport) +    #define XSLTPUBVAR __declspec(dllexport) +  #else +    #define XSLTPUBFUN +    #if !defined(LIBXSLT_STATIC) +      #define XSLTPUBVAR __declspec(dllimport) extern +    #else +      #define XSLTPUBVAR +    #endif +  #endif +  #define XSLTCALL __cdecl +#endif + +/* Compatibility */ +#if !defined(LIBXSLT_PUBLIC) +#define LIBXSLT_PUBLIC XSLTPUBVAR +#endif + +#endif /* __XSLT_EXPORTS_H__ */ + + diff --git a/plugins/Variables/src/libxslt/xsltutils.h b/plugins/Variables/src/libxslt/xsltutils.h new file mode 100644 index 0000000000..699fd4ab1c --- /dev/null +++ b/plugins/Variables/src/libxslt/xsltutils.h @@ -0,0 +1,240 @@ +/* + * xsltutils.h: interfaces for the utilities module of the XSLT engine. + * + * See Copyright for the status of this software. + * + * daniel@veillard.com + */ + +#ifndef __XML_XSLTUTILS_H__ +#define __XML_XSLTUTILS_H__ + +#if defined(WIN32) && defined(_MSC_VER) +#include "libxslt/xsltwin32config.h" +#else +#include "libxslt/xsltconfig.h" +#endif + +#include "libxml/xpath.h" +#include "libxml/xmlerror.h" +#include "xsltexports.h" +#include "xsltInternals.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * XSLT_TODO: + * + * Macro to flag unimplemented blocks. + */ +#define XSLT_TODO 							\ +    xsltGenericError(xsltGenericErrorContext,				\ +	    "Unimplemented block at %s:%d\n",				\ +            __FILE__, __LINE__); + +/** + * XSLT_STRANGE: + * + * Macro to flag that a problem was detected internally. + */ +#define XSLT_STRANGE 							\ +    xsltGenericError(xsltGenericErrorContext,				\ +	    "Internal error at %s:%d\n",				\ +            __FILE__, __LINE__); + +/** + * IS_XSLT_ELEM: + * + * Checks that the element pertains to XSLT namespace. + */ +#define IS_XSLT_ELEM(n)							\ +    (((n) != NULL) && ((n)->ns != NULL) &&				\ +     (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE))) + +/** + * IS_XSLT_NAME: + * + * Checks the value of an element in XSLT namespace. + */ +#define IS_XSLT_NAME(n, val)						\ +    (xmlStrEqual((n)->name, (const xmlChar *) (val))) + +/** + * IS_XSLT_REAL_NODE: + * + * Check that a node is a 'real' one: document, element, text or attribute. + */ +#define IS_XSLT_REAL_NODE(n)						\ +    (((n) != NULL) &&							\ +     (((n)->type == XML_ELEMENT_NODE) ||				\ +      ((n)->type == XML_TEXT_NODE) ||					\ +      ((n)->type == XML_ATTRIBUTE_NODE) ||				\ +      ((n)->type == XML_DOCUMENT_NODE) ||				\ +      ((n)->type == XML_HTML_DOCUMENT_NODE) ||				\ +      ((n)->type == XML_PI_NODE))) + +/* + * Our own version of namespaced atributes lookup. + */ +XSLTPUBFUN xmlChar * XSLTCALL	xsltGetNsProp			(xmlNodePtr node, +						 const xmlChar *name, +						 const xmlChar *nameSpace); +XSLTPUBFUN int XSLTCALL		xsltGetUTF8Char			(const unsigned char *utf, +						 int *len); + +/* + * XSLT specific error and debug reporting functions. + */ +XSLTPUBVAR xmlGenericErrorFunc xsltGenericError; +XSLTPUBVAR void *xsltGenericErrorContext; +XSLTPUBVAR xmlGenericErrorFunc xsltGenericDebug; +XSLTPUBVAR void *xsltGenericDebugContext; + +XSLTPUBFUN void XSLTCALL		 +		xsltPrintErrorContext		(xsltTransformContextPtr ctxt, +	                                         xsltStylesheetPtr style, +						 xmlNodePtr node); +XSLTPUBFUN void XSLTCALL		 +    		xsltMessage			(xsltTransformContextPtr ctxt, +						 xmlNodePtr node, +						 xmlNodePtr inst); +XSLTPUBFUN void XSLTCALL		 +    		xsltSetGenericErrorFunc		(void *ctx, +						 xmlGenericErrorFunc handler); +XSLTPUBFUN void XSLTCALL		 +    		xsltSetGenericDebugFunc		(void *ctx, +						 xmlGenericErrorFunc handler); +XSLTPUBFUN void XSLTCALL		 +    		xsltSetTransformErrorFunc	(xsltTransformContextPtr ctxt, +						 void *ctx, +						 xmlGenericErrorFunc handler); +XSLTPUBFUN void XSLTCALL		 +    		xsltTransformError		(xsltTransformContextPtr ctxt, +						 xsltStylesheetPtr style, +						 xmlNodePtr node, +						 const char *msg, +						 ...); + +/* + * Sorting. + */ + +XSLTPUBFUN void XSLTCALL		 +    		xsltDocumentSortFunction	(xmlNodeSetPtr list); +XSLTPUBFUN void XSLTCALL		 +    		xsltSetSortFunc			(xsltSortFunc handler); +XSLTPUBFUN void XSLTCALL		 +    		xsltSetCtxtSortFunc		(xsltTransformContextPtr ctxt, +						 xsltSortFunc handler); +XSLTPUBFUN void XSLTCALL		 +    		xsltDefaultSortFunction		(xsltTransformContextPtr ctxt, +						 xmlNodePtr *sorts, +						 int nbsorts); +XSLTPUBFUN void XSLTCALL		 +    		xsltDoSortFunction		(xsltTransformContextPtr ctxt, +						 xmlNodePtr * sorts, +						 int nbsorts); +XSLTPUBFUN xmlXPathObjectPtr * XSLTCALL  +    		xsltComputeSortResult		(xsltTransformContextPtr ctxt, +						 xmlNodePtr sort); + +/* + * QNames handling. + */ + +XSLTPUBFUN const xmlChar * XSLTCALL  +    		xsltGetQNameURI			(xmlNodePtr node, +						 xmlChar **name); + +/* + * Output, reuse libxml I/O buffers. + */ +XSLTPUBFUN int XSLTCALL		 +    		xsltSaveResultTo		(xmlOutputBufferPtr buf, +						 xmlDocPtr result, +						 xsltStylesheetPtr style); +XSLTPUBFUN int XSLTCALL		 +    		xsltSaveResultToFilename	(const char *URI, +						 xmlDocPtr result, +						 xsltStylesheetPtr style, +						 int compression); +XSLTPUBFUN int XSLTCALL		 +    		xsltSaveResultToFile		(FILE *file, +						 xmlDocPtr result, +						 xsltStylesheetPtr style); +XSLTPUBFUN int XSLTCALL		 +    		xsltSaveResultToFd		(int fd, +						 xmlDocPtr result, +						 xsltStylesheetPtr style); +XSLTPUBFUN int XSLTCALL              +    		xsltSaveResultToString          (xmlChar **doc_txt_ptr,  +                                                 int * doc_txt_len,  +                                                 xmlDocPtr result,  +                                                 xsltStylesheetPtr style); + +/* + * Profiling. + */ +XSLTPUBFUN void XSLTCALL		 +    		xsltSaveProfiling		(xsltTransformContextPtr ctxt, +						 FILE *output); +XSLTPUBFUN xmlDocPtr XSLTCALL	 +    		xsltGetProfileInformation	(xsltTransformContextPtr ctxt); + +XSLTPUBFUN long XSLTCALL		 +    		xsltTimestamp			(void); +XSLTPUBFUN void XSLTCALL		 +    		xsltCalibrateAdjust		(long delta); + +/** + * XSLT_TIMESTAMP_TICS_PER_SEC: + * + * Sampling precision for profiling + */ +#define XSLT_TIMESTAMP_TICS_PER_SEC 100000l + +/* + * Hooks for the debugger. + */ + +typedef enum { +    XSLT_DEBUG_NONE = 0, /* no debugging allowed */ +    XSLT_DEBUG_INIT, +    XSLT_DEBUG_STEP, +    XSLT_DEBUG_STEPOUT, +    XSLT_DEBUG_NEXT, +    XSLT_DEBUG_STOP, +    XSLT_DEBUG_CONT, +    XSLT_DEBUG_RUN, +    XSLT_DEBUG_RUN_RESTART, +    XSLT_DEBUG_QUIT +} xsltDebugStatusCodes; + +XSLTPUBVAR int xslDebugStatus; + +typedef void (*xsltHandleDebuggerCallback) (xmlNodePtr cur, xmlNodePtr node, +			xsltTemplatePtr templ, xsltTransformContextPtr ctxt); +typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source); +typedef void (*xsltDropCallCallback) (void); + +XSLTPUBFUN void XSLTCALL +		xsltSetDebuggerStatus		(int value); +XSLTPUBFUN int XSLTCALL +		xsltGetDebuggerStatus		(void); +XSLTPUBFUN int XSLTCALL		 +		xsltSetDebuggerCallbacks	(int no, void *block); +XSLTPUBFUN int XSLTCALL		 +		xslAddCall			(xsltTemplatePtr templ, +						 xmlNodePtr source); +XSLTPUBFUN void XSLTCALL		 +		xslDropCall			(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __XML_XSLTUTILS_H__ */ + + diff --git a/plugins/Variables/src/libxslt/xsltwin32config.h b/plugins/Variables/src/libxslt/xsltwin32config.h new file mode 100644 index 0000000000..985bfc71dc --- /dev/null +++ b/plugins/Variables/src/libxslt/xsltwin32config.h @@ -0,0 +1,84 @@ +/* + * xsltwin32config.h: compile-time version informations for the XSLT engine + *                    when compiled on windows + * + * See Copyright for the status of this software. + * + * daniel@veillard.com + */ + +#ifndef __XML_XSLTWIN32CONFIG_H__ +#define __XML_XSLTWIN32CONFIG_H__ + +#include "win32config.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * LIBXSLT_DOTTED_VERSION: + * + * the version string like "1.2.3" + */ +#define LIBXSLT_DOTTED_VERSION "1.1.0" + +/** + * LIBXSLT_VERSION: + * + * the version number: 1.2.3 value is 1002003 + */ +#define LIBXSLT_VERSION 10100 + +/** + * LIBXSLT_VERSION_STRING: + * + * the version number string, 1.2.3 value is "1002003" + */ +#define LIBXSLT_VERSION_STRING "10100" + +/** + * WITH_XSLT_DEBUG: + * + * Activate the compilation of the debug reporting. Speed penalty + * is insignifiant and being able to run xsltpoc -v is useful. On + * by default + */ +#if 1 +#define WITH_XSLT_DEBUG +#endif + +#if 0 +/** + * DEBUG_MEMORY: + * + * should be activated only when debugging libxslt. It replaces the + * allocator with a collect and debug shell to the libc allocator. + * Use configure --with-mem-debug to activate it on both library + */ +#define DEBUG_MEMORY + +/** + * DEBUG_MEMORY_LOCATION: + * + * should be activated only when debugging libxslt. + * DEBUG_MEMORY_LOCATION should be activated only when libxml has + * been configured with --with-debug-mem too + */ +#define DEBUG_MEMORY_LOCATION +#endif + +/** + * ATTRIBUTE_UNUSED: + * + * This macro is used to flag unused function parameters to GCC, useless here + */ +#ifndef ATTRIBUTE_UNUSED +#define ATTRIBUTE_UNUSED +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __XML_XSLTWIN32CONFIG_H__ */ | 
