Return negative values. (#416062)
2007-03-08 Matthias Clasen <mclasen@redhat.com>
* glib/gstrfuncs.c (g_strtoll): Return negative values.
(#416062)
* tests/strtoll-test.c: Add more testcases.
svn path=/branches/glib-2-12/; revision=5391
diff --git a/ChangeLog b/ChangeLog
index 820b64c..fcc5e5d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2007-03-08 Matthias Clasen <mclasen@redhat.com>
+ Merge from trunk:
+
+ * glib/gstrfuncs.c (g_strtoll): Return negative values.
+ (#416062)
+
+ * tests/strtoll-test.c: Add more testcases.
+
+2007-03-08 Matthias Clasen <mclasen@redhat.com>
+
* glib/gthreadpool.c: Remove leftover debug spew.
2007-03-07 Matthias Clasen <mclasen@redhat.com>
diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c
index 61d11ed..7786f10 100644
--- a/glib/gstrfuncs.c
+++ b/glib/gstrfuncs.c
@@ -813,6 +813,8 @@
errno = ERANGE;
return G_MAXINT64;
}
+ else if (negative)
+ return - (gint64) result;
else
return (gint64) result;
}
diff --git a/tests/strtoll-test.c b/tests/strtoll-test.c
index 6c1de3f..43005d5 100644
--- a/tests/strtoll-test.c
+++ b/tests/strtoll-test.c
@@ -62,6 +62,10 @@
test_int64 ("9223372036854775808", "", 10, G_MAXINT64, ERANGE);
test_int64 ("-9223372036854775808", "", 10, G_MININT64, 0);
test_int64 ("-9223372036854775809", "", 10, G_MININT64, ERANGE);
+ test_int64 ("32768", "", 10, 32768, 0);
+ test_int64 ("-32768", "", 10, -32768, 0);
+ test_int64 ("001", "", 10, 1, 0);
+ test_int64 ("-001", "", 10, -1, 0);
return 0;
}