+Thu May 15 11:45:00 HKT 2003 William Brack <wbrack@mmm.com.hk>
+
+ * libxslt/xsltutils.c: fixing bug #112995, a problem with
+ NaN within the sort element. Also added regression test.
+
Tue May 13 18:22:38 EDT 2003 Daniel Veillard <daniel@veillard.com>
* doc/Makefile.am: fixing bug #112803 , make sure to avoid
tst = 1;
else {
if (number) {
- if (results[j]->floatval == results[j + incr]->floatval)
+ /* We arbitrarily make NaN bigger than number
+ (thinking that alpha is usually > number) */
+ if (xmlXPathIsNaN(results[j]->floatval)) {
+ if (xmlXPathIsNaN(results[j + incr]->floatval))
+ tst = 0;
+ else
+ tst = 1;
+ } else if (xmlXPathIsNaN(results[j + incr]->floatval))
+ tst = -1;
+ else if (results[j]->floatval ==
+ results[j + incr]->floatval)
tst = 0;
else if (results[j]->floatval >
results[j + incr]->floatval)
--- /dev/null
+<?xml version="1.0"?>
+<a>
+ <b>3</b>
+ <b/>
+ <b>1</b>
+ <b>4</b>
+ <b/>
+ <b/>
+ <b>-1</b>
+ <b>some alpha</b>
+ <b/>
+ <b>-99999999</b>
+ <b/>
+</a>
+
--- /dev/null
+<?xml version="1.0"?>
+<a>
+ Ascending numeric
+ <b>-99999999</b><b>-1</b><b>1</b><b>3</b><b>4</b><b/><b/><b/><b>some alpha</b><b/><b/>
+ Descending numeric
+ <b/><b/><b/><b>some alpha</b><b/><b/><b>4</b><b>3</b><b>1</b><b>-1</b><b>-99999999</b>
+ Ascending alpha
+ <b/><b/><b/><b/><b/><b>-1</b><b>-99999999</b><b>1</b><b>3</b><b>4</b><b>some alpha</b></a>
--- /dev/null
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+<xsl:output indent="yes"/>
+
+<xsl:template match="a">
+ <a>
+ Ascending numeric
+ <xsl:for-each select="b">
+ <xsl:sort select="." data-type="number"/>
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ Descending numeric
+ <xsl:for-each select="b">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ Ascending alpha
+ <xsl:for-each select="b">
+ <xsl:sort select="." data-type="text"/>
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </a>
+</xsl:template>
+
+</xsl:stylesheet>
+