+Sat Nov 10 14:01:44 CET 2001 Daniel Veillard <daniel@veillard.com>
+
+ * configure.in: preparing 1.0.7
+ * libxslt.spec.in: cleanup similar to libxml2 one
+ * breakpoint/*.[hc]: finished cleaning up contributed code
+ * doc/*: updated and rebuilt the documentation
+ * xsltproc/xsltproc.c: cleanup of the timing code
+ * xsltproc/Makefile.am: auto* sucks
+ * libxslt/transform.c: added a missing include
+
Mon Nov 5 14:29:26 CET 2001 Daniel Veillard <daniel@veillard.com>
* Makefile.am acconfig.h config.h.in configure.in
#include <libxml/xpath.h>
#include <libxml/list.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* Define the types of status whilst debugging*/
typedef enum {
DEBUG_NONE, /* no debugging allowed */
-----------------------------------------------------------
Break point related functions
----------------------------------------------------------
-*
+*/
/**
* xslFindTemplateNode:
*
* Return the break point number that we stoped at
*/
-int xslActiveBreakPoint();
+int xslActiveBreakPoint(void);
/**
*
* Returns the number of break points present
*/
-int xslBreakPointCount();
+int xslBreakPointCount(void);
/**
*
* Initialize debugger allocating any memory needed by debugger
*/
-void xslDebugInit();
+void xslDebugInit(void);
/**
*
* Free up any memory taken by debugger
*/
-void xslDebugFree();
+void xslDebugFree(void);
/**
*
* Drop the topmost item off the call stack
*/
-void xslDropCall();
+void xslDropCall(void);
/**
*
* Returns the top of the call stack
*/
-xslCallPointPtr xslGetCallStackTop();
+xslCallPointPtr xslGetCallStackTop(void);
/**
*
* Returns the depth of call stack
*/
-int xslCallDepth();
+int xslCallDepth(void);
+#ifdef __cplusplus
+}
+#endif
#endif
* 0 otherwise
*/
int
-xslSetActiveBreakPoint(int breakPointNumber)
+xslSetActiveBreakPoint(int breakPointNumber ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslSetActiveBreakPoint' not overloaded\n");
* 0 otherwise
*/
int
-xslAddBreakPoint(const xmlChar * url, long lineNumber,
- const xmlChar * templateName, int type)
+xslAddBreakPoint(const xmlChar * url ATTRIBUTE_UNUSED, long lineNumber ATTRIBUTE_UNUSED,
+ const xmlChar * templateName ATTRIBUTE_UNUSED, int type ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
* 0 otherwise
*/
int
-xslDeleteBreakPoint(int breakPointNumber)
+xslDeleteBreakPoint(int breakPointNumber ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
* 0 otherwise
*/
int
-xslEnableBreakPoint(int breakPointNumber, int enable)
+xslEnableBreakPoint(int breakPointNumber ATTRIBUTE_UNUSED, int enable ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslEnableBreakPoint' not overloaded\n");
* 1 if break point is enabled
*/
int
-xslIsBreakPointEnabled(int breakPointNumber)
+xslIsBreakPointEnabled(int breakPointNumber ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslIsBreakPointEnabled' not overloaded\n");
* NULL otherwise
*/
xslBreakPointPtr
-xslGetBreakPoint(int breakPointNumber)
+xslGetBreakPoint(int breakPointNumber ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslGetBreakPoint' not overloaded\n");
* 0 otherwise
*/
int
-xslPrintBreakPoint(FILE * file, int breakPointNumber)
+xslPrintBreakPoint(FILE * file ATTRIBUTE_UNUSED, int breakPointNumber ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslPrintBreakPoint' not overloaded\n");
* 0 otherwise
*/
int
-xslIsBreakPoint(const xmlChar * url, long lineNumber)
+xslIsBreakPoint(const xmlChar * url ATTRIBUTE_UNUSED, long lineNumber ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslIsBreakPoint' not overloaded\n");
* 0 otherwise
*/
int
-xslIsBreakPointNode(xmlNodePtr node)
+xslIsBreakPointNode(xmlNodePtr node ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslIsBreakPointNode' not overloaded\n");
-----------------------------------------------------
*/
+#include "libxslt.h"
#include "xsltutils.h"
#include "breakpoint.h"
* Returns a reference to the added info if sucessfull, otherwise NULL
*/
xslCallPointInfoPtr
-xslAddCallInfo(const xmlChar * templateName, const xmlChar * url)
+xslAddCallInfo(const xmlChar * templateName ATTRIBUTE_UNUSED,
+ const xmlChar * url ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslAddCallInfo' not overloaded\n");
* Returns : 1 on sucess, 0 otherwise
*/
int
-xslAddCall(xsltTemplatePtr templ, xmlNodePtr source)
+xslAddCall(xsltTemplatePtr templ ATTRIBUTE_UNUSED, xmlNodePtr source ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslAddCall' not overloaded\n");
* Drop the topmost item off the call stack
*/
void
-xslDropCall()
+xslDropCall(void)
{
xsltGenericError(xsltGenericErrorContext,
* Returns 1 on sucess , 0 otherwise
*/
int
-xslStepupToDepth(int depth)
+xslStepupToDepth(int depth ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslStepupToDepth' not overloaded\n");
* Returns 1 on sucess , 0 otherwise
*/
int
-xslStepdownToDepth(int depth)
+xslStepdownToDepth(int depth ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslStepdownToDepth' not overloaded\n");
* NULL otherwise
*/
xslCallPointPtr
-xslGetCall(int depth)
+xslGetCall(int depth ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslGetCall' not overloaded\n");
* Returns the top of the call stack
*/
xslCallPointPtr
-xslGetCallStackTop()
+xslGetCallStackTop(void)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslGetCallStackTop' not overloaded\n");
* Return the depth of call stack
*/
int
-xslCallDepth()
+xslCallDepth(void)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslCallDepth' not overloaded\n");
extern char *xslShellReadline(char *prompt);
+
/**
* @templ : The source node being executed
* @node : The data node being processed
* A break point has been found so pass control to user
*/
void
-xslDebugBreak(xmlNodePtr templ, xmlNodePtr node, xsltTemplatePtr root,
- xsltTransformContextPtr ctxt)
+xslDebugBreak(xmlNodePtr templ ATTRIBUTE_UNUSED,
+ xmlNodePtr node ATTRIBUTE_UNUSED,
+ xsltTemplatePtr root ATTRIBUTE_UNUSED,
+ xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslDebugBreak' not overloaded\n");
* NULL otherwise
*/
xmlNodePtr
-xslFindTemplateNode(xsltStylesheetPtr style, const xmlChar * name)
+xslFindTemplateNode(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
+ const xmlChar * name ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
* 0 otherwise
*/
xmlNodePtr
-xslFindNodeByLineNo(xsltTransformContextPtr ctxt,
- const xmlChar * url, long lineNumber)
+xslFindNodeByLineNo(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
+ const xmlChar * url ATTRIBUTE_UNUSED,
+ long lineNumber ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslFindNodeByLineNo' not overloaded\n");
* 0 otherwise
*/
int
-xslFindBreakPointById(int id)
+xslFindBreakPointById(int id ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslFindBreakPointById' not overloaded\n");
* 0 otherwise
*/
int
-xslFindBreakPointByLineNo(const xmlChar * url, long lineNumber)
+xslFindBreakPointByLineNo(const xmlChar * url ATTRIBUTE_UNUSED,
+ long lineNumber ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslFindBreakPointByLineNo' not overloaded\n");
* 0 otherwise
*/
int
-xslFindBreakPointByName(const xmlChar * templateName)
+xslFindBreakPointByName(const xmlChar * templateName ATTRIBUTE_UNUSED)
{
xsltGenericError(xsltGenericErrorContext,
"Error!: Debugger function 'xslFindBreakPointByName' not overloaded\n");
/* Define if you have the <nan.h> header file. */
#undef HAVE_NAN_H
+/* Define if you have the <stdarg.h> header file. */
+#undef HAVE_STDARG_H
+
/* Define if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
AC_CHECK_HEADERS(sys/types.h sys/time.h stdlib.h unistd.h string.h)
AC_CHECK_HEADERS(ieeefp.h nan.h math.h fp_class.h float.h ansidecl.h)
-AC_CHECK_HEADERS(time.h sys/stat.h)
+AC_CHECK_HEADERS(time.h sys/stat.h stdarg.h)
AC_CHECK_FUNCS(stat _stat)
AC_CHECK_FUNC(isnan, , AC_CHECK_LIB(m, isnan,
<a href="ftp://xmlsoft.org/contribs/">contrib directory</a>
</p>
<p>Libxslt is also available from CVS:</p>
-<ul><li><p>The <a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=libxslt">Gnome
+<ul>
+<li><p>The <a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=libxslt">Gnome
CVS base</a>. Check the <a href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
- page; the CVS module is <b>libxslt</b>.</p></li></ul>
+ page; the CVS module is <b>libxslt</b>.</p></li>
+<li>
+<a href="ftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gzftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gzftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gz">daily
+ snapshots from CVS</a>
+ are also provided</li>
+</ul>
<p><a href="mailto:daniel@veillard.com">Daniel Veillard</a></p>
</td></tr></table></td></tr></table></td></tr></table></td>
</tr></table></td></tr></table>
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2498"
+NAME="AEN2534"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2501"
+NAME="AEN2537"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2514"
+NAME="AEN2550"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2517"
+NAME="AEN2553"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2519"
+NAME="AEN2555"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2527"
+NAME="AEN2563"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2540"
+NAME="AEN2576"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2547"
+NAME="AEN2583"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2556"
+NAME="AEN2592"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2566"
+NAME="AEN2602"
></A
><P
></P
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2592"
+NAME="AEN2628"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2595"
+NAME="AEN2631"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2619"
+NAME="AEN2655"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2622"
+NAME="AEN2658"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2624"
+NAME="AEN2660"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2630"
+NAME="AEN2666"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2647"
+NAME="AEN2683"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2653"
+NAME="AEN2689"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2670"
+NAME="AEN2706"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2678"
+NAME="AEN2714"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2691"
+NAME="AEN2727"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2699"
+NAME="AEN2735"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2712"
+NAME="AEN2748"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2720"
+NAME="AEN2756"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2733"
+NAME="AEN2769"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2740"
+NAME="AEN2776"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2753"
+NAME="AEN2789"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2761"
+NAME="AEN2797"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2778"
+NAME="AEN2814"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2788"
+NAME="AEN2824"
></A
><P
></P
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3470"
+NAME="AEN3506"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3473"
+NAME="AEN3509"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3496"
+NAME="AEN3532"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3499"
+NAME="AEN3535"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3501"
+NAME="AEN3537"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3513"
+NAME="AEN3549"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3546"
+NAME="AEN3582"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3557"
+NAME="AEN3593"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3582"
+NAME="AEN3618"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3590"
+NAME="AEN3626"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3603"
+NAME="AEN3639"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3610"
+NAME="AEN3646"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3619"
+NAME="AEN3655"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3626"
+NAME="AEN3662"
></A
><P
></P
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2814"
+NAME="AEN2850"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2817"
+NAME="AEN2853"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2848"
+NAME="AEN2884"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2851"
+NAME="AEN2887"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2853"
+NAME="AEN2889"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2861"
+NAME="AEN2897"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2874"
+NAME="AEN2910"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2885"
+NAME="AEN2921"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2910"
+NAME="AEN2946"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2922"
+NAME="AEN2958"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2951"
+NAME="AEN2987"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2962"
+NAME="AEN2998"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2983"
+NAME="AEN3019"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2994"
+NAME="AEN3030"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3015"
+NAME="AEN3051"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3022"
+NAME="AEN3058"
></A
><P
></P
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4215"
+NAME="AEN4251"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4218"
+NAME="AEN4254"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4231"
+NAME="AEN4267"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4234"
+NAME="AEN4270"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4236"
+NAME="AEN4272"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4246"
+NAME="AEN4282"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4271"
+NAME="AEN4307"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4279"
+NAME="AEN4315"
></A
><P
></P
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
+> ctxt);
+void <A
+HREF="libxslt-transform.html#XSLHANDLEDEBUGGER"
+>xslHandleDebugger</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ <A
+HREF="libxslt-xsltinternals.html#XSLTTEMPLATEPTR"
+>xsltTemplatePtr</A
+> templ,
+ <A
+HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
+>xsltTransformContextPtr</A
> ctxt);</PRE
></TD
></TR
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1094"
+NAME="AEN1099"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1097"
+NAME="AEN1102"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1099"
+NAME="AEN1104"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1105"
+NAME="AEN1110"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1114"
+NAME="AEN1119"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1120"
+NAME="AEN1125"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1129"
+NAME="AEN1134"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1138"
+NAME="AEN1143"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1155"
+NAME="AEN1160"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1163"
+NAME="AEN1168"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1172"
+NAME="AEN1177"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1183"
+NAME="AEN1188"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1216"
+NAME="AEN1221"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1224"
+NAME="AEN1229"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1237"
+NAME="AEN1242"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1248"
+NAME="AEN1253"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1269"
+NAME="AEN1274"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1278"
+NAME="AEN1283"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1299"
+NAME="AEN1304"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1309"
+NAME="AEN1314"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1334"
+NAME="AEN1339"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1350"
+NAME="AEN1355"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1383"
+NAME="AEN1388"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1394"
+NAME="AEN1399"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1419"
+NAME="AEN1424"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1429"
+NAME="AEN1434"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1450"
+NAME="AEN1455"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1460"
+NAME="AEN1465"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1481"
+NAME="AEN1486"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1491"
+NAME="AEN1496"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1512"
+NAME="AEN1517"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1522"
+NAME="AEN1527"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1543"
+NAME="AEN1548"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1553"
+NAME="AEN1558"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1574"
+NAME="AEN1579"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1584"
+NAME="AEN1589"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1605"
+NAME="AEN1610"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1615"
+NAME="AEN1620"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1636"
+NAME="AEN1641"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1646"
+NAME="AEN1651"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1667"
+NAME="AEN1672"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1677"
+NAME="AEN1682"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1698"
+NAME="AEN1703"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1708"
+NAME="AEN1713"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1729"
+NAME="AEN1734"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1739"
+NAME="AEN1744"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1760"
+NAME="AEN1765"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1770"
+NAME="AEN1775"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1791"
+NAME="AEN1796"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1801"
+NAME="AEN1806"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1822"
+NAME="AEN1827"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1832"
+NAME="AEN1837"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1853"
+NAME="AEN1858"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1863"
+NAME="AEN1868"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1884"
+NAME="AEN1889"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1894"
+NAME="AEN1899"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1915"
+NAME="AEN1920"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1925"
+NAME="AEN1930"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1946"
+NAME="AEN1951"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN1953"
+NAME="AEN1958"
></A
><P
></P
></P
></DIV
></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1967"
+></A
+><H3
+><A
+NAME="XSLHANDLEDEBUGGER"
+></A
+>xslHandleDebugger ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xslHandleDebugger (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ <A
+HREF="libxslt-xsltinternals.html#XSLTTEMPLATEPTR"
+>xsltTemplatePtr</A
+> templ,
+ <A
+HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
+>xsltTransformContextPtr</A
+> ctxt);</PRE
+></TD
+></TR
+></TABLE
+><P
+>If either cur or node are a breakpoint, or xslDebugStatus in state
+where debugging must occcur at this time then transfer control
+to the xslDebugBreak function</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1977"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> source node being executed</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> data node being processed</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>templ</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> temlate that applies to node</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctxt</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the xslt transform context </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3036"
+NAME="AEN3072"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3039"
+NAME="AEN3075"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3087"
+NAME="AEN3123"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3090"
+NAME="AEN3126"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3092"
+NAME="AEN3128"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3098"
+NAME="AEN3134"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3107"
+NAME="AEN3143"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3114"
+NAME="AEN3150"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3127"
+NAME="AEN3163"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3137"
+NAME="AEN3173"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3154"
+NAME="AEN3190"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3164"
+NAME="AEN3200"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3181"
+NAME="AEN3217"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3196"
+NAME="AEN3232"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3217"
+NAME="AEN3253"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3231"
+NAME="AEN3267"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3252"
+NAME="AEN3288"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3260"
+NAME="AEN3296"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3273"
+NAME="AEN3309"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3281"
+NAME="AEN3317"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3294"
+NAME="AEN3330"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3302"
+NAME="AEN3338"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3315"
+NAME="AEN3351"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3323"
+NAME="AEN3359"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3336"
+NAME="AEN3372"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3346"
+NAME="AEN3382"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3363"
+NAME="AEN3399"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3371"
+NAME="AEN3407"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3388"
+NAME="AEN3424"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3395"
+NAME="AEN3431"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3404"
+NAME="AEN3440"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3414"
+NAME="AEN3450"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3435"
+NAME="AEN3471"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3444"
+NAME="AEN3480"
></A
><P
></P
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3640"
+NAME="AEN3676"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3643"
+NAME="AEN3679"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3719"
+NAME="AEN3755"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3722"
+NAME="AEN3758"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3724"
+NAME="AEN3760"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3730"
+NAME="AEN3766"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3736"
+NAME="AEN3772"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3742"
+NAME="AEN3778"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3747"
+NAME="AEN3783"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3753"
+NAME="AEN3789"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3758"
+NAME="AEN3794"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3764"
+NAME="AEN3800"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3769"
+NAME="AEN3805"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3774"
+NAME="AEN3810"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3779"
+NAME="AEN3815"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3785"
+NAME="AEN3821"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3791"
+NAME="AEN3827"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3800"
+NAME="AEN3836"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3810"
+NAME="AEN3846"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3831"
+NAME="AEN3867"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3836"
+NAME="AEN3872"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3844"
+NAME="AEN3880"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3854"
+NAME="AEN3890"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3860"
+NAME="AEN3896"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3865"
+NAME="AEN3901"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3870"
+NAME="AEN3906"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3875"
+NAME="AEN3911"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3880"
+NAME="AEN3916"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3885"
+NAME="AEN3921"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3890"
+NAME="AEN3926"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3895"
+NAME="AEN3931"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3901"
+NAME="AEN3937"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3907"
+NAME="AEN3943"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3913"
+NAME="AEN3949"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3920"
+NAME="AEN3956"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3929"
+NAME="AEN3965"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3937"
+NAME="AEN3973"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3950"
+NAME="AEN3986"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3958"
+NAME="AEN3994"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3967"
+NAME="AEN4003"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3974"
+NAME="AEN4010"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3987"
+NAME="AEN4023"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN3995"
+NAME="AEN4031"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4004"
+NAME="AEN4040"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4013"
+NAME="AEN4049"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4030"
+NAME="AEN4066"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4039"
+NAME="AEN4075"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4056"
+NAME="AEN4092"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4064"
+NAME="AEN4100"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4077"
+NAME="AEN4113"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4085"
+NAME="AEN4121"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4098"
+NAME="AEN4134"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4107"
+NAME="AEN4143"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4120"
+NAME="AEN4156"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4129"
+NAME="AEN4165"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4146"
+NAME="AEN4182"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4164"
+NAME="AEN4200"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN4189"
+NAME="AEN4225"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN4197"
+NAME="AEN4233"
></A
><P
></P
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1967"
+NAME="AEN2003"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1970"
+NAME="AEN2006"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2026"
+NAME="AEN2062"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2029"
+NAME="AEN2065"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2031"
+NAME="AEN2067"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2036"
+NAME="AEN2072"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2041"
+NAME="AEN2077"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2047"
+NAME="AEN2083"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2056"
+NAME="AEN2092"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2062"
+NAME="AEN2098"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2075"
+NAME="AEN2111"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2081"
+NAME="AEN2117"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2090"
+NAME="AEN2126"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2104"
+NAME="AEN2140"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2125"
+NAME="AEN2161"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2134"
+NAME="AEN2170"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2151"
+NAME="AEN2187"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2160"
+NAME="AEN2196"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2177"
+NAME="AEN2213"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2189"
+NAME="AEN2225"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2202"
+NAME="AEN2238"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2214"
+NAME="AEN2250"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2227"
+NAME="AEN2263"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2235"
+NAME="AEN2271"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2244"
+NAME="AEN2280"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2252"
+NAME="AEN2288"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2269"
+NAME="AEN2305"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2282"
+NAME="AEN2318"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2300"
+NAME="AEN2336"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2312"
+NAME="AEN2348"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2333"
+NAME="AEN2369"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2344"
+NAME="AEN2380"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2369"
+NAME="AEN2405"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2381"
+NAME="AEN2417"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2402"
+NAME="AEN2438"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2412"
+NAME="AEN2448"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2433"
+NAME="AEN2469"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2442"
+NAME="AEN2478"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2455"
+NAME="AEN2491"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2462"
+NAME="AEN2498"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2471"
+NAME="AEN2507"
></A
><H3
><A
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN2479"
+NAME="AEN2515"
></A
><P
></P
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2488"
+NAME="AEN2524"
></A
><H3
><A
<td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd">
<h3>CVS only : check the <a href="http://cvs.gnome.org/lxr/source/libxslt/ChangeLog">Changelog</a> file
for a really accurate description</h3>
+<h3>1.0.7: Nov 10 2001</h3>
+<ul>
+<li>remove a compilation problem with LIBXSLT_PUBLIC</li>
+<li>Finishing the integration steps for Keith Isdale debugger</li>
+<li>fixes the handling of indent="no" on HTML output</li>
+<li>fixes on the configure script and RPM spec file</li>
+</ul>
<h3>1.0.6: Oct 30 2001</h3>
<ul>
<li>bug fixes on number formatting (Thomas), date/time functions (Bruce
href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
page; the CVS module is <b>libxslt</b>.</p>
</li>
+ <li><a
+ href="ftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gzftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gzftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gz">daily
+ snapshots from CVS</a>
+ are also provided</li>
</ul>
<h2><a name="News">News</a></h2>
href="http://cvs.gnome.org/lxr/source/libxslt/ChangeLog">Changelog</a> file
for a really accurate description</h3>
+<h3>1.0.7: Nov 10 2001</h3>
+<ul>
+ <li>remove a compilation problem with LIBXSLT_PUBLIC</li>
+ <li>Finishing the integration steps for Keith Isdale debugger</li>
+ <li>fixes the handling of indent="no" on HTML output</li>
+ <li>fixes on the configure script and RPM spec file</li>
+</ul>
+
<h3>1.0.6: Oct 30 2001</h3>
<ul>
<li>bug fixes on number formatting (Thomas), date/time functions (Bruce
-# Note that this is NOT a relocatable package
-%define ver @VERSION@
-%define prefix /usr
-%define datadir %{prefix}/share
-
Summary: Library providing the Gnome XSLT engine
Name: libxslt
-Version: %ver
+Version: @VERSION@
Release: 1
Copyright: LGPL
Group: Development/Libraries
-Source: ftp://xmlsoft.org/XSLT/libxslt-%{ver}.tar.gz
-BuildRoot: /var/tmp/libxslt-%{PACKAGE_VERSION}-root
+Source: ftp://xmlsoft.org/XSLT/libxslt-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+URL: http://xmlsoft.org/XSLT/
Requires: libxml2 >= @LIBXML_REQUIRED_VERSION@
BuildRequires: libxml2-devel >= @LIBXML_REQUIRED_VERSION@
-
-URL: http://xmlsoft.org/XSLT/
-Docdir: %{prefix}/doc
+Prefix: %{_prefix}
+Docdir: %{_docdir}
%description
This C library allows to transform XML files into other XML files
Summary: Libraries, includes, etc. to embed the Gnome XSLT engine
Group: Development/Libraries
Requires: libxslt = %{version}
-Requires: libxml2-devel >= 2.3.10
+Requires: libxml2-devel >= @LIBXML_REQUIRED_VERSION@
%description devel
This C library allows to transform XML files into other XML files
mechanism. To use it you need to have a version of libxml2 >= 2.3.8
installed.
-%changelog
-
-* Mon Jan 22 2001 Daniel.Veillard <daniel@veillard.com>
-
-- created based on libxml2 spec file
-
%prep
-%setup
+%setup -q
%build
# Needed for snapshot releases.
if [ ! -f configure ]; then
%ifarch alpha
- CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --host=alpha-redhat-linux --prefix=%prefix --sysconfdir="/etc"
+ CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --host=alpha-redhat-linux --prefix=%prefix --sysconfdir="/etc" --mandir=%{_mandir}
%else
- CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --prefix=%prefix --sysconfdir="/etc"
+ CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh --prefix=%prefix --sysconfdir="/etc" --mandir=%{_mandir}
%endif
else
%ifarch alpha
- CFLAGS="$RPM_OPT_FLAGS" ./configure --host=alpha-redhat-linux --prefix=%prefix --sysconfdir="/etc"
+ CFLAGS="$RPM_OPT_FLAGS" ./configure --host=alpha-redhat-linux --prefix=%prefix --sysconfdir="/etc" --mandir=%{_mandir}
%else
- CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix --sysconfdir="/etc"
+ CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix --sysconfdir="/etc" --mandir=%{_mandir}
%endif
fi
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{datadir}/man/man1
-install -d $RPM_BUILD_ROOT%{datadir}/man/man4
-make prefix=$RPM_BUILD_ROOT%{prefix} mandir=$RPM_BUILD_ROOT%{datadir}/man install
+install -d $RPM_BUILD_ROOT%{_mandir}/man1
+install -d $RPM_BUILD_ROOT%{_mandir}/man4
+make prefix=$RPM_BUILD_ROOT%{prefix} mandir=$RPM_BUILD_ROOT%{_mandir} install
%clean
rm -rf $RPM_BUILD_ROOT
%doc AUTHORS ChangeLog NEWS README COPYING COPYING.LIB TODO FEATURES
%doc doc/*.html doc/html doc/tutorial
-%doc %{prefix}/share/man/man1/xsltproc.1*
+%doc %{_mandir}/man1/xsltproc.1*
%{prefix}/lib/lib*.so.*
%{prefix}/bin/xsltproc
%{prefix}/lib/*.sh
%{prefix}/include/*
%{prefix}/bin/xslt-config
+
+%changelog
+
+* Sat Nov 10 2001 Daniel.Veillard <daniel@veillard.com>
+
+- cleaned up the specfile
+
+* Mon Jan 22 2001 Daniel.Veillard <daniel@veillard.com>
+
+- created based on libxml2 spec file
+
#include <libxml/parserInternals.h>
#include <libxml/xpathInternals.h>
#include <libxml/HTMLtree.h>
+#include <libxml/debugXML.h>
#include <libxml/uri.h>
#include "xslt.h"
#include "xsltInternals.h"
all: xsltproc
if WITH_DEBUGGER
-xsltproc: xsltproc.o ../libxslt/.libs/libxslt.a ../libexslt/.libs/libexslt.a ../breakpoint/.libs/libxsltbreakpoint.a ../../XML/.libs/libxml2.a
- gcc -g -O -o xsltproc xsltproc.o ../libxslt/.libs/libxslt.a ../breakpoint/.libs/libxsltbreakpoint.a ../libexslt/.libs/libexslt.a ../../XML/.libs/libxml2.a -lz -lm
+xsltproc$(EXEEXT): xsltproc.o ../libxslt/.libs/libxslt.a ../libexslt/.libs/libexslt.a ../breakpoint/.libs/libxsltbreakpoint.a ../../XML/.libs/libxml2.a
+ gcc -g -O -o xsltproc$(EXEEXT) xsltproc.o ../libxslt/.libs/libxslt.a ../breakpoint/.libs/libxsltbreakpoint.a ../libexslt/.libs/libexslt.a ../../XML/.libs/libxml2.a -lz -lm
else
-xsltproc: xsltproc.o ../libxslt/.libs/libxslt.a ../libexslt/.libs/libexslt.a ../../XML/.libs/libxml2.a
- gcc -g -O -o xsltproc xsltproc.o ../libxslt/.libs/libxslt.a ../libexslt/.libs/libexslt.a ../../XML/.libs/libxml2.a -lz -lm
+xsltproc$(EXEEXT): xsltproc.o ../libxslt/.libs/libxslt.a ../libexslt/.libs/libexslt.a ../../XML/.libs/libxml2.a
+ gcc -g -O -o xsltproc$(EXEEXT) xsltproc.o ../libxslt/.libs/libxslt.a ../libexslt/.libs/libexslt.a ../../XML/.libs/libxml2.a -lz -lm
endif
programs=
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
+#ifdef HAVE_STDARG_H
+#include <stdarg.h>
+#endif
#include <libxml/xmlmemory.h>
#include <libxml/debugXML.h>
#include <libxml/HTMLtree.h>
#define gettimeofday(p1,p2)
#endif /* _MS_VER */
#else /* WIN32 */
+#if defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
+#elif defined(HAVE_TIME_H)
+#include <time.h>
+#endif
#endif /* WIN32 */
#ifndef HAVE_STAT
#endif
static int profile = 0;
-static struct timeval begin, end;
static const char *params[16 + 1];
static int nbparams = 0;
static const char *output = NULL;
+/*
+ * Internal timing routines to remove the necessity to have unix-specific
+ * function calls
+ */
+
+#if defined(HAVE_GETTIMEOFDAY)
+static struct timeval begin, end;
+/*
+ * startTimer: call where you want to start timing
+ */
+static void startTimer(void)
+{
+ gettimeofday(&begin,NULL);
+}
+/*
+ * endTimer: call where you want to stop timing and to print out a
+ * message about the timing performed; format is a printf
+ * type argument
+ */
+static void endTimer(const char *format, ...)
+{
+ long msec;
+ va_list ap;
+
+ gettimeofday(&end, NULL);
+ msec = end.tv_sec - begin.tv_sec;
+ msec *= 1000;
+ msec += (end.tv_usec - begin.tv_usec) / 1000;
+
+#ifndef HAVE_STDARG_H
+#error "endTimer required stdarg functions"
+#endif
+ va_start(ap, format);
+ vfprintf(stderr,format,ap);
+ va_end(ap);
+
+ fprintf(stderr, " took %ld ms\n", msec);
+}
+#elif defined(HAVE_TIME_H)
+/*
+ * No gettimeofday function, so we have to make do with calling clock.
+ * This is obviously less accurate, but there's little we can do about
+ * that.
+ */
+
+clock_t begin, end;
+static void startTimer(void)
+{
+ begin=clock();
+}
+static void endTimer(char *format, ...)
+{
+ long msec;
+ va_list ap;
+
+ end=clock();
+ msec = ((end-begin) * 1000) / CLOCKS_PER_SEC;
+
+#ifndef HAVE_STDARG_H
+#error "endTimer required stdarg functions"
+#endif
+ va_start(ap, format);
+ vfprintf(stderr,format,ap);
+ va_end(ap);
+ fprintf(stderr, " took %ld ms\n", msec);
+}
+#else
+/*
+ * We don't have a gettimeofday or time.h, so we just don't do timing
+ */
+static void startTimer(void)
+{
+ /*
+ * Do nothing
+ */
+}
+static void endTimer(char *format, ...)
+{
+ /*
+ * We cannot do anything because we don't have a timing function
+ */
+#ifdef HAVE_STDARG_H
+ va_start(ap, format);
+ vfprintf(stderr,format,ap);
+ va_end(ap);
+ fprintf(stderr, " was not timed\n", msec);
+#else
+ /* We don't have gettimeofday, time or stdarg.h, what crazy world is
+ * this ?!
+ */
+#endif
+}
+#endif
+
static void
xsltProcess(xmlDocPtr doc, xsltStylesheetPtr cur, const char *filename) {
xmlDocPtr res;
#ifdef LIBXML_XINCLUDE_ENABLED
if (xinclude) {
if (timing)
- gettimeofday(&begin, NULL);
+ startTimer();
xmlXIncludeProcess(doc);
if (timing) {
- long msec;
-
- gettimeofday(&end, NULL);
- msec = end.tv_sec - begin.tv_sec;
- msec *= 1000;
- msec += (end.tv_usec - begin.tv_usec) / 1000;
- fprintf(stderr, "XInclude processing %s took %ld ms\n",
- filename, msec);
+ endTimer("XInclude processing %s", filename);
}
}
#endif
if (timing)
- gettimeofday(&begin, NULL);
+ startTimer();
if (output == NULL) {
if (repeat) {
int j;
res = xsltApplyStylesheet(cur, doc, params);
}
if (timing) {
- long msec;
-
- gettimeofday(&end, NULL);
- msec = end.tv_sec - begin.tv_sec;
- msec *= 1000;
- msec += (end.tv_usec - begin.tv_usec) / 1000;
if (repeat)
- fprintf(stderr,
- "Applying stylesheet %d times took %ld ms\n",
- repeat, msec);
+ endTimer("Applying stylesheet %d times", repeat);
else
- fprintf(stderr,
- "Applying stylesheet took %ld ms\n", msec);
+ endTimer("Applying stylesheet");
}
xmlFreeDoc(doc);
if (res == NULL) {
#endif
if (cur->methodURI == NULL) {
if (timing)
- gettimeofday(&begin, NULL);
+ startTimer();
xsltSaveResultToFile(stdout, res, cur);
- if (timing) {
- long msec;
-
- gettimeofday(&end, NULL);
- msec = end.tv_sec - begin.tv_sec;
- msec *= 1000;
- msec += (end.tv_usec - begin.tv_usec) / 1000;
- fprintf(stderr, "Saving result took %ld ms\n",
- msec);
- }
+ if (timing)
+ endTimer("Saving result");
} else {
if (xmlStrEqual
(cur->method, (const xmlChar *) "xhtml")) {
fprintf(stderr, "non standard output xhtml\n");
if (timing)
- gettimeofday(&begin, NULL);
+ startTimer();
xsltSaveResultToFile(stdout, res, cur);
- if (timing) {
- long msec;
-
- gettimeofday(&end, NULL);
- msec = end.tv_sec - begin.tv_sec;
- msec *= 1000;
- msec +=
- (end.tv_usec - begin.tv_usec) / 1000;
- fprintf(stderr,
- "Saving result took %ld ms\n",
- msec);
- }
+ if (timing)
+ endTimer("Saving result");
} else {
fprintf(stderr,
"Unsupported non standard output %s\n",
xmlFreeDoc(res);
} else {
xsltRunStylesheet(cur, doc, params, output, NULL, NULL);
- if (timing) {
- long msec;
-
- gettimeofday(&end, NULL);
- msec = end.tv_sec - begin.tv_sec;
- msec *= 1000;
- msec += (end.tv_usec - begin.tv_usec) / 1000;
- fprintf(stderr,
- "Running stylesheet and saving result took %ld ms\n",
- msec);
- }
+ if (timing)
+ endTimer("Running stylesheet and saving result");
xmlFreeDoc(doc);
}
}
}
if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
if (timing)
- gettimeofday(&begin, NULL);
+ startTimer();
style = xmlParseFile((const char *) argv[i]);
- if (timing) {
- long msec;
-
- gettimeofday(&end, NULL);
- msec = end.tv_sec - begin.tv_sec;
- msec *= 1000;
- msec += (end.tv_usec - begin.tv_usec) / 1000;
- fprintf(stderr, "Parsing stylesheet %s took %ld ms\n",
- argv[i], msec);
- }
+ if (timing)
+ endTimer("Parsing stylesheet %s", argv[i]);
if (style == NULL) {
fprintf(stderr, "cannot parse %s\n", argv[i]);
cur = NULL;
for (; i < argc; i++) {
doc = NULL;
if (timing)
- gettimeofday(&begin, NULL);
+ startTimer();
#ifdef LIBXML_HTML_ENABLED
if (html)
doc = htmlParseFile(argv[i], NULL);
fprintf(stderr, "unable to parse %s\n", argv[i]);
continue;
}
- if (timing) {
- long msec;
-
- gettimeofday(&end, NULL);
- msec = end.tv_sec - begin.tv_sec;
- msec *= 1000;
- msec += (end.tv_usec - begin.tv_usec) / 1000;
- fprintf(stderr, "Parsing document %s took %ld ms\n",
- argv[i], msec);
- }
+ if (timing)
+ endTimer("Parsing document %s", argv[i]);
xsltProcess(doc, cur, argv[i]);
}
}