diff options
-rw-r--r-- | libexslt/date.c | 2 | ||||
-rw-r--r-- | tests/docs/date_add.xml | 1 | ||||
-rw-r--r-- | tests/general/Makefile.am | 2 | ||||
-rw-r--r-- | tests/general/date_add.out | 9 | ||||
-rw-r--r-- | tests/general/date_add.xsl | 16 |
5 files changed, 28 insertions, 2 deletions
diff --git a/libexslt/date.c b/libexslt/date.c index cefbdd83..05b11ed3 100644 --- a/libexslt/date.c +++ b/libexslt/date.c @@ -1577,7 +1577,7 @@ _exsltDateAdd (exsltDateValPtr dt, exsltDateValPtr dur) if ((r->hour) || (r->min) || (r->sec)) ret->type = XS_DATETIME; else if (ret->type != XS_DATE) { - if ((r->mon != 1) && (r->day != 1)) + if (r->day != 1) ret->type = XS_DATE; else if ((ret->type != XS_GYEARMONTH) && (r->mon != 1)) ret->type = XS_GYEARMONTH; diff --git a/tests/docs/date_add.xml b/tests/docs/date_add.xml new file mode 100644 index 00000000..69d62f2c --- /dev/null +++ b/tests/docs/date_add.xml @@ -0,0 +1 @@ +<doc/> diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am index 7207e15f..8f32fe7f 100644 --- a/tests/general/Makefile.am +++ b/tests/general/Makefile.am @@ -182,7 +182,7 @@ EXTRA_DIST = \ character.out character.xsl \ character2.out character2.xsl \ itemschoose.out itemschoose.xsl \ - inner.xsl + inner.xsl date_add.xsl all: diff --git a/tests/general/date_add.out b/tests/general/date_add.out new file mode 100644 index 00000000..fbca16b4 --- /dev/null +++ b/tests/general/date_add.out @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<dates-and-times> + <d>2001-01-04</d> + <d>2001-02-04</d> + <d>2001-12-04</d> + <d>2001-12-31</d> + <d>2002-01</d> + <d>2002-01-02</d> +</dates-and-times> diff --git a/tests/general/date_add.xsl b/tests/general/date_add.xsl new file mode 100644 index 00000000..0ef39c5a --- /dev/null +++ b/tests/general/date_add.xsl @@ -0,0 +1,16 @@ +<xsl:stylesheet version="1.0" + xmlns:date="http://exslt.org/dates-and-times" + exclude-result-prefixes="date" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:output indent="yes"/> + <xsl:template match="/"> + <dates-and-times> + <d><xsl:value-of select="date:add( '2001-01', 'P3D' )" /></d> + <d><xsl:value-of select="date:add( '2001-02', 'P3D' )" /></d> + <d><xsl:value-of select="date:add( '2001-12', 'P3D' )" /></d> + <d><xsl:value-of select="date:add( '2001-12', 'P30D' )" /></d> + <d><xsl:value-of select="date:add( '2001-12', 'P31D' )" /></d> + <d><xsl:value-of select="date:add( '2001-12', 'P32D' )" /></d> + </dates-and-times> + </xsl:template> +</xsl:stylesheet> |