From: Matthias Clasen Date: Fri, 9 Mar 2007 03:40:43 +0000 (+0000) Subject: Return negative values. (#416062) X-Git-Tag: GLIB_2_13_0~19 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2a867b1fca33fa6563bd787801d32dd05334ec86;p=platform%2Fupstream%2Fglib.git Return negative values. (#416062) 2007-03-08 Matthias Clasen * glib/gstrfuncs.c (g_strtoll): Return negative values. (#416062) * tests/strtoll-test.c: Add more testcases. svn path=/trunk/; revision=5390 --- diff --git a/ChangeLog b/ChangeLog index 66b1403..d43bae9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-03-08 Matthias Clasen + + * glib/gstrfuncs.c (g_strtoll): Return negative values. + (#416062) + + * tests/strtoll-test.c: Add more testcases. + 2007-03-06 Matthias Clasen * glib/gstring.c (g_str_equal): Clarify docs. (#364026, diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c index 7ab4d64..bf2ba93 100644 --- a/glib/gstrfuncs.c +++ b/glib/gstrfuncs.c @@ -842,6 +842,8 @@ g_ascii_strtoll (const gchar *nptr, 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 @@ main (int argc, char *argv[]) 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; }