HREF="libxslt-xslt.html#XSLT-NAMESPACE-CAPS"
>XSLT_NAMESPACE</A
>
-extern int <A
-HREF="libxslt-xslt.html#XSLTMAXDEPTH"
->xsltMaxDepth</A
->;
-extern const char *<A
-HREF="libxslt-xslt.html#XSLTENGINEVERSION"
->xsltEngineVersion</A
->;
-extern const int <A
-HREF="libxslt-xslt.html#XSLTLIBXSLTVERSION"
->xsltLibxsltVersion</A
->;
-extern const int <A
-HREF="libxslt-xslt.html#XSLTLIBXMLVERSION"
->xsltLibxmlVersion</A
->;
void <A
HREF="libxslt-xslt.html#XSLTCLEANUPGLOBALS"
>xsltCleanupGlobals</A
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN46"
+NAME="AEN42"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN49"
+NAME="AEN45"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN51"
+NAME="AEN47"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN57"
+NAME="AEN53"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN63"
+NAME="AEN59"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN69"
+NAME="AEN65"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN75"
-></A
-><H3
-><A
-NAME="XSLTMAXDEPTH"
-></A
->xsltMaxDepth</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->extern int xsltMaxDepth;</PRE
-></TD
-></TR
-></TABLE
-><P
->This value is used to detect templates loops</P
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN81"
-></A
-><H3
-><A
-NAME="XSLTENGINEVERSION"
-></A
->xsltEngineVersion</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->extern const char *xsltEngineVersion;</PRE
-></TD
-></TR
-></TABLE
-><P
->The version string for libxslt</P
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN87"
-></A
-><H3
-><A
-NAME="XSLTLIBXSLTVERSION"
-></A
->xsltLibxsltVersion</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->extern const int xsltLibxsltVersion;</PRE
-></TD
-></TR
-></TABLE
-><P
->The version of libxslt compiled</P
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN93"
-></A
-><H3
-><A
-NAME="XSLTLIBXMLVERSION"
-></A
->xsltLibxmlVersion</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->extern const int xsltLibxmlVersion;</PRE
-></TD
-></TR
-></TABLE
-><P
->The version of libxml libxslt was compiled against</P
-><P
-></P
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN99"
+NAME="AEN71"
></A
><H3
><A
*/
#include <stdlib.h>
+#include <string.h>
#ifdef WIN32
#include <win32config.h>
/* is it an xs:gDay? */
if (*cur == '-') {
+ ++cur;
ret = _exsltDateParseGDay(dt, &cur);
if (ret != 0)
goto error;
*/
static const xmlChar *
exsltDateMonthName (const xmlChar *dateTime) {
- static const xmlChar monthNames[12][10] = {
+ static const xmlChar monthNames[13][10] = {
+ { 0 },
{ 'J', 'a', 'n', 'u', 'a', 'r', 'y', 0 },
{ 'F', 'e', 'b', 'r', 'u', 'a', 'r', 'y', 0 },
{ 'M', 'a', 'r', 'c', 'h', 0 },
};
int month;
month = exsltDateMonthInYear(dateTime);
-
- return monthNames[month - 1];
+ if (!VALID_MONTH(month))
+ month = 0;
+ return monthNames[month];
}
/**
*/
static const xmlChar *
exsltDateMonthAbbreviation (const xmlChar *dateTime) {
- static const xmlChar monthAbbreviations[12][4] = {
+ static const xmlChar monthAbbreviations[13][4] = {
+ { 0 },
{ 'J', 'a', 'n', 0 },
{ 'F', 'e', 'b', 0 },
{ 'M', 'a', 'r', 0 },
};
int month;
month = exsltDateMonthInYear(dateTime);
-
- return monthAbbreviations[month - 1];
+ if(!VALID_MONTH(month))
+ month = 0;
+ return monthAbbreviations[month];
}
/**
dt = exsltDateParse(dateTime);
if (dt == NULL)
return xmlXPathNAN;
- if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE) &&
- (dt->type != XS_GMONTHDAY) && (dt->type != XS_GDAY)) {
+ if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE)) {
exsltDateFreeDate(dt);
return xmlXPathNAN;
}
*/
static const xmlChar *
exsltDateDayName (const xmlChar *dateTime) {
- static const xmlChar dayNames[7][10] = {
+ static const xmlChar dayNames[8][10] = {
+ { 0 },
{ 'S', 'u', 'n', 'd', 'a', 'y', 0 },
{ 'M', 'o', 'n', 'd', 'a', 'y', 0 },
{ 'T', 'u', 'e', 's', 'd', 'a', 'y', 0 },
};
int day;
day = exsltDateDayInWeek(dateTime);
-
- return dayNames[day - 1];
+ if((day < 1) || (day > 7))
+ day = 0;
+ return dayNames[day];
}
/**
*/
static const xmlChar *
exsltDateDayAbbreviation (const xmlChar *dateTime) {
- static const xmlChar dayAbbreviations[7][4] = {
+ static const xmlChar dayAbbreviations[8][4] = {
+ { 0 },
{ 'S', 'u', 'n', 0 },
{ 'M', 'o', 'n', 0 },
{ 'T', 'u', 'e', 0 },
};
int day;
day = exsltDateDayInWeek(dateTime);
-
- return dayAbbreviations[day - 1];
+ if((day < 1) || (day > 7))
+ day = 0;
+ return dayAbbreviations[day];
}
/**
dt = exsltDateParse(dateTime);
if (dt == NULL)
return xmlXPathNAN;
- if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE) &&
- (dt->type != XS_GMONTHDAY) && (dt->type != XS_GDAY)) {
+ if ((dt->type != XS_DATETIME) && (dt->type != XS_TIME)) {
exsltDateFreeDate(dt);
return xmlXPathNAN;
}
dt = exsltDateParse(dateTime);
if (dt == NULL)
return xmlXPathNAN;
- if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE) &&
- (dt->type != XS_GMONTHDAY) && (dt->type != XS_GDAY)) {
+ if ((dt->type != XS_DATETIME) && (dt->type != XS_TIME)) {
exsltDateFreeDate(dt);
return xmlXPathNAN;
}
dt = exsltDateParse(dateTime);
if (dt == NULL)
return xmlXPathNAN;
- if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE) &&
- (dt->type != XS_GMONTHDAY) && (dt->type != XS_GDAY)) {
+ if ((dt->type != XS_DATETIME) && (dt->type != XS_TIME)) {
exsltDateFreeDate(dt);
return xmlXPathNAN;
}