diff options
Diffstat (limited to 'libexslt/date.c')
-rw-r--r-- | libexslt/date.c | 128 |
1 files changed, 64 insertions, 64 deletions
diff --git a/libexslt/date.c b/libexslt/date.c index 18523d02..9ca993c6 100644 --- a/libexslt/date.c +++ b/libexslt/date.c @@ -99,7 +99,7 @@ typedef struct _exsltDateValDuration exsltDateValDuration; typedef exsltDateValDuration *exsltDateValDurationPtr; struct _exsltDateValDuration { long mon; /* mon stores years also */ - long day; + long day; double sec; /* sec stores min and hour also */ }; @@ -119,7 +119,7 @@ struct _exsltDateVal { * * ****************************************************************/ -#if defined(HAVE_TIME_H) \ +#if defined(HAVE_TIME_H) \ && (defined(HAVE_LOCALTIME) || defined(HAVE_LOCALTIME_R)) \ && (defined(HAVE_GMTIME) || defined(HAVE_GMTIME_R)) \ && defined(HAVE_TIME) @@ -791,27 +791,27 @@ exsltDateCurrent (void) local_s = localTm.tm_hour * SECS_PER_HOUR + localTm.tm_min * SECS_PER_MIN + localTm.tm_sec; - + gm_s = gmTm.tm_hour * SECS_PER_HOUR + gmTm.tm_min * SECS_PER_MIN + gmTm.tm_sec; - + if (localTm.tm_year < gmTm.tm_year) { - ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60; + ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60; } else if (localTm.tm_year > gmTm.tm_year) { - ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60; + ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60; } else if (localTm.tm_mon < gmTm.tm_mon) { - ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60; + ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60; } else if (localTm.tm_mon > gmTm.tm_mon) { - ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60; + ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60; } else if (localTm.tm_mday < gmTm.tm_mday) { - ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60; + ret->value.date.tzo = -((SECS_PER_DAY - local_s) + gm_s)/60; } else if (localTm.tm_mday > gmTm.tm_mday) { - ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60; + ret->value.date.tzo = ((SECS_PER_DAY - gm_s) + local_s)/60; } else { - ret->value.date.tzo = (local_s - gm_s)/60; + ret->value.date.tzo = (local_s - gm_s)/60; } - + return ret; } #endif @@ -1111,9 +1111,9 @@ exsltDateFormatDuration (const exsltDateValDurationPtr dt) return NULL; /* quick and dirty check */ - if ((dt->sec == 0.0) && (dt->day == 0) && (dt->mon == 0)) + if ((dt->sec == 0.0) && (dt->day == 0) && (dt->mon == 0)) return xmlStrdup((xmlChar*)"P0D"); - + secs = dt->sec; days = (double)dt->day; years = (double)(dt->mon / 12); @@ -1123,15 +1123,15 @@ exsltDateFormatDuration (const exsltDateValDurationPtr dt) if (secs < 0.0) { secs = -secs; *cur = '-'; - } + } if (days < 0) { days = -days; *cur = '-'; - } + } if (years < 0) { years = -years; *cur = '-'; - } + } if (months < 0) { months = -months; *cur = '-'; @@ -1301,7 +1301,7 @@ exsltDateFormat (const exsltDateValPtr dt) * _exsltDateCastYMToDays: * @dt: an #exsltDateValPtr * - * Convert mon and year of @dt to total number of days. Take the + * Convert mon and year of @dt to total number of days. Take the * number of years since (or before) 1 AD and add the number of leap * years. This is a function because negative * years must be handled a little differently and there is no zero year. @@ -1414,7 +1414,7 @@ _exsltDateTruncateDate (exsltDateValPtr dt, exsltDateType type) * @yr: year * * Determine the day-in-week from @yday and @yr. 0001-01-01 was - * a Monday so all other days are calculated from there. Take the + * a Monday so all other days are calculated from there. Take the * number of years since (or before) add the number of leap years and * the day-in-year and mod by 7. This is a function because negative * years must be handled a little differently and there is no zero year. @@ -1428,7 +1428,7 @@ _exsltDateDayInWeek(long yday, long yr) if (yr < 0) { ret = ((yr + (((yr+1)/4)-((yr+1)/100)+((yr+1)/400)) + yday) % 7); - if (ret < 0) + if (ret < 0) ret += 7; } else ret = (((yr-1) + (((yr-1)/4)-((yr-1)/100)+((yr-1)/400)) + yday) % 7); @@ -1542,7 +1542,7 @@ _exsltDateAdd (exsltDateValPtr dt, exsltDateValPtr dur) if (tyr == 0) tyr--; /* - * Coverity detected an overrun in daysInMonth + * Coverity detected an overrun in daysInMonth * of size 12 at position 12 with index variable "((r)->mon - 1)" */ if (tmon < 0) @@ -1567,7 +1567,7 @@ _exsltDateAdd (exsltDateValPtr dt, exsltDateValPtr dur) r->year++; } } - + r->day = tempdays; /* @@ -1642,7 +1642,7 @@ _exsltDateDifference (exsltDateValPtr x, exsltDateValPtr y, int flag) return NULL; if (((x->type < XS_GYEAR) || (x->type > XS_DATETIME)) || - ((y->type < XS_GYEAR) || (y->type > XS_DATETIME))) + ((y->type < XS_GYEAR) || (y->type > XS_DATETIME))) return NULL; exsltDateNormalize(x); @@ -1779,7 +1779,7 @@ _exsltDateAddDuration (exsltDateValPtr x, exsltDateValPtr y) * * Implements the EXSLT - Dates and Times date-time() function: * string date:date-time() - * + * * Returns the current date and time as a date/time string. */ static xmlChar * @@ -1805,7 +1805,7 @@ exsltDateDateTime (void) * * Implements the EXSLT - Dates and Times date() function: * string date:date (string?) - * + * * Returns the date specified in the date/time string given as the * argument. If no argument is given, then the current local * date/time, as returned by date:date-time is used as a default @@ -1849,7 +1849,7 @@ exsltDateDate (const xmlChar *dateTime) * * Implements the EXSLT - Dates and Times time() function: * string date:time (string?) - * + * * Returns the time specified in the date/time string given as the * argument. If no argument is given, then the current local * date/time, as returned by date:date-time is used as a default @@ -2630,7 +2630,7 @@ exsltDateMinuteInHour (const xmlChar *dateTime) * - xs:time (hh:mm:ss) * If the date/time string is not in one of these formats, then NaN is * returned. - * + * * Returns the second or NaN. */ static double @@ -2667,21 +2667,21 @@ exsltDateSecondInMinute (const xmlChar *dateTime) * @ystr: date/time string * * Implements the date:add (string,string) function which returns the - * date/time * resulting from adding a duration to a date/time. + * date/time * resulting from adding a duration to a date/time. * The first argument (@xstr) must be right-truncated date/time * strings in one of the formats defined in [XML Schema Part 2: - * Datatypes]. The permitted formats are as follows: - * - xs:dateTime (CCYY-MM-DDThh:mm:ss) - * - xs:date (CCYY-MM-DD) - * - xs:gYearMonth (CCYY-MM) - * - xs:gYear (CCYY) + * Datatypes]. The permitted formats are as follows: + * - xs:dateTime (CCYY-MM-DDThh:mm:ss) + * - xs:date (CCYY-MM-DD) + * - xs:gYearMonth (CCYY-MM) + * - xs:gYear (CCYY) * The second argument (@ystr) is a string in the format defined for - * xs:duration in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. + * xs:duration in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. * The return value is a right-truncated date/time strings in one of * the formats defined in [XML Schema Part 2: Datatypes] and listed * above. This value is calculated using the algorithm described in * [Appendix E Adding durations to dateTimes] of [XML Schema Part 2: - * Datatypes]. + * Datatypes]. * Returns date/time string or NULL. */ @@ -2689,7 +2689,7 @@ static xmlChar * exsltDateAdd (const xmlChar *xstr, const xmlChar *ystr) { exsltDateValPtr dt, dur, res; - xmlChar *ret; + xmlChar *ret; if ((xstr == NULL) || (ystr == NULL)) return NULL; @@ -2728,18 +2728,18 @@ exsltDateAdd (const xmlChar *xstr, const xmlChar *ystr) * @ystr: second duration string * * Implements the date:add-duration (string,string) function which returns - * the duration resulting from adding two durations together. + * the duration resulting from adding two durations together. * Both arguments are strings in the format defined for xs:duration * in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. If either * argument is not in this format, the function returns an empty string - * (''). + * (''). * The return value is a string in the format defined for xs:duration - * in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. + * in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. * The durations can usually be added by summing the numbers given for * each of the components in the durations. However, if the durations * are differently signed, then this sometimes results in durations * that are impossible to express in this syntax (e.g. 'P1M' + '-P1D'). - * In these cases, the function returns an empty string (''). + * In these cases, the function returns an empty string (''). * * Returns duration string or NULL. */ @@ -2747,7 +2747,7 @@ static xmlChar * exsltDateAddDuration (const xmlChar *xstr, const xmlChar *ystr) { exsltDateValPtr x, y, res; - xmlChar *ret; + xmlChar *ret; if ((xstr == NULL) || (ystr == NULL)) return NULL; @@ -2780,18 +2780,18 @@ exsltDateAddDuration (const xmlChar *xstr, const xmlChar *ystr) * exsltDateSumFunction: * @ns: a node set of duration strings * - * The date:sum function adds a set of durations together. - * The string values of the nodes in the node set passed as an argument - * are interpreted as durations and added together as if using the + * The date:sum function adds a set of durations together. + * The string values of the nodes in the node set passed as an argument + * are interpreted as durations and added together as if using the * date:add-duration function. (from exslt.org) * * The return value is a string in the format defined for xs:duration - * in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. + * in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. * The durations can usually be added by summing the numbers given for * each of the components in the durations. However, if the durations * are differently signed, then this sometimes results in durations * that are impossible to express in this syntax (e.g. 'P1M' + '-P1D'). - * In these cases, the function returns an empty string (''). + * In these cases, the function returns an empty string (''). * * Returns duration string or NULL. */ @@ -2835,7 +2835,7 @@ exsltDateSumFunction (xmlXPathParserContextPtr ctxt, int nargs) } for (i = 0; i < ns->nodeNr; i++) { - int result; + int result; tmp = xmlXPathCastNodeToString (ns->nodeTab[i]); if (tmp == NULL) { xmlXPathFreeNodeSet (ns); @@ -2888,13 +2888,13 @@ exsltDateSumFunction (xmlXPathParserContextPtr ctxt, int nargs) * local date/time, as returned by exsltDateCurrent() is used as the * default argument. If the date/time string is a xs:duration, then the * years and months must be zero (or not present). Parsing a duration - * converts the fields to seconds. If the date/time string is not a + * converts the fields to seconds. If the date/time string is not a * duration (and not null), then the legal formats are: * - xs:dateTime (CCYY-MM-DDThh:mm:ss) * - xs:date (CCYY-MM-DD) * - xs:gYearMonth (CCYY-MM) * - xs:gYear (CCYY) - * In these cases the difference between the @dateTime and + * In these cases the difference between the @dateTime and * 1970-01-01T00:00:00Z is calculated and converted to seconds. * * Note that there was some confusion over whether "difference" meant @@ -2942,7 +2942,7 @@ exsltDateSeconds (const xmlChar *dateTime) dur = _exsltDateDifference(y, dt, 1); if (dur != NULL) { - ret = exsltDateCastDateToNumber(dur); + ret = exsltDateCastDateToNumber(dur); exsltDateFreeDate(dur); } exsltDateFreeDate(y); @@ -2970,26 +2970,26 @@ exsltDateSeconds (const xmlChar *dateTime) * 2: Datatypes]. The date/time with the most specific format (i.e. the * least truncation) is converted into the same format as the date with * the least specific format (i.e. the most truncation). The permitted - * formats are as follows, from most specific to least specific: - * - xs:dateTime (CCYY-MM-DDThh:mm:ss) - * - xs:date (CCYY-MM-DD) - * - xs:gYearMonth (CCYY-MM) - * - xs:gYear (CCYY) + * formats are as follows, from most specific to least specific: + * - xs:dateTime (CCYY-MM-DDThh:mm:ss) + * - xs:date (CCYY-MM-DD) + * - xs:gYearMonth (CCYY-MM) + * - xs:gYear (CCYY) * If either of the arguments is not in one of these formats, - * date:difference returns the empty string (''). + * date:difference returns the empty string (''). * The difference between the date/times is returned as a string in the * format defined for xs:duration in [3.2.6 duration] of [XML Schema - * Part 2: Datatypes]. + * Part 2: Datatypes]. * If the date/time string with the least specific format is in either * xs:gYearMonth or xs:gYear format, then the number of days, hours, * minutes and seconds in the duration string must be equal to zero. * (The format of the string will be PnYnM.) The number of months - * specified in the duration must be less than 12. + * specified in the duration must be less than 12. * Otherwise, the number of years and months in the duration string * must be equal to zero. (The format of the string will be * PnDTnHnMnS.) The number of seconds specified in the duration string * must be less than 60; the number of minutes must be less than 60; - * the number of hours must be less than 24. + * the number of hours must be less than 24. * * Returns duration string or NULL. */ @@ -2997,7 +2997,7 @@ static xmlChar * exsltDateDifference (const xmlChar *xstr, const xmlChar *ystr) { exsltDateValPtr x, y, dur; - xmlChar *ret = NULL; + xmlChar *ret = NULL; if ((xstr == NULL) || (ystr == NULL)) return NULL; @@ -3040,16 +3040,16 @@ exsltDateDifference (const xmlChar *xstr, const xmlChar *ystr) * Implements the The date:duration function returns a duration string * representing the number of seconds specified by the argument string. * If no argument is given, then the result of calling date:seconds - * without any arguments is used as a default argument. + * without any arguments is used as a default argument. * The duration is returned as a string in the format defined for - * xs:duration in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. + * xs:duration in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. * The number of years and months in the duration string must be equal * to zero. (The format of the string will be PnDTnHnMnS.) The number * of seconds specified in the duration string must be less than 60; * the number of minutes must be less than 60; the number of hours must - * be less than 24. + * be less than 24. * If the argument is Infinity, -Infinity or NaN, then date:duration - * returns an empty string (''). + * returns an empty string (''). * * Returns duration string or NULL. */ |