pretty insane thing, the xmlXPathFormatNumber() was not serializing 1 as

* xpath.c: pretty insane thing, the xmlXPathFormatNumber()
  was not serializing 1 as "1" if LC_ALL=sv_SE :-( and in the
  context of ScrollKeeper, made sure that if the number is
  an integer, the serialization follows the description at
  http://www.w3.org/TR/xpath#section-String-Functions
Daniel
diff --git a/xpath.c b/xpath.c
index 24d8dc0..3a3d405 100644
--- a/xpath.c
+++ b/xpath.c
@@ -1125,6 +1125,36 @@
 	if (xmlXPathIsNaN(number)) {
 	    if (buffersize > (int)sizeof("NaN"))
 		sprintf(buffer, "NaN");
+	} else if (number == ((int) number)) {
+	    char work[30];
+	    char *ptr, *cur;
+	    int res, value = (int) number;
+
+            ptr = &buffer[0];
+	    if (value < 0) {
+		*ptr++ = '-';
+		value = -value;
+	    }
+	    if (value == 0) {
+		*ptr++ = '0';
+	    } else {
+		cur = &work[0];
+		while (value != 0) {
+		    res = value % 10;
+		    value = value / 10;
+		    *cur++ = '0' + res;
+		}
+		cur--;
+		while ((cur >= &work[0]) && (ptr - buffer < buffersize)) {
+		    *ptr++ = *cur--;
+		}
+	    }
+	    if (ptr - buffer < buffersize) {
+		*ptr = 0;
+	    } else if (buffersize > 0) {
+		ptr--;
+		*ptr = 0;
+	    }
 	} else {
 	    /* 3 is sign, decimal point, and terminating zero */
 	    char work[DBL_DIG + EXPONENT_DIGITS + 3];