From 2a867b1fca33fa6563bd787801d32dd05334ec86 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 9 Mar 2007 03:40:43 +0000 Subject: [PATCH] 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 --- ChangeLog | 7 +++++++ glib/gstrfuncs.c | 2 ++ tests/strtoll-test.c | 4 ++++ 3 files changed, 13 insertions(+) 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; } -- 2.7.4