From c038f26da8b87e0cee9403380527a91ec18000f6 Mon Sep 17 00:00:00 2001 From: Puck Meerburg Date: Sun, 14 Dec 2014 16:38:42 +0100 Subject: [PATCH] Import div.c patch by Tri-Edge AI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Duval --- src/system/libroot/posix/stdlib/div.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/system/libroot/posix/stdlib/div.c b/src/system/libroot/posix/stdlib/div.c index 723a31515e..0ca8e3326f 100644 --- a/src/system/libroot/posix/stdlib/div.c +++ b/src/system/libroot/posix/stdlib/div.c @@ -1,9 +1,10 @@ /* - * Copyright 2002-2007, Haiku Inc. All rights reserved. + * Copyright 2002-2010, Haiku Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Author: * Daniel Reinhold, danielre@users.sf.net + * Tri-Edge AI, triedgeai@gmail.com */ @@ -16,9 +17,9 @@ div(int numerator, int denominator) div_t val; val.quot = numerator / denominator; - val.rem = numerator - denominator * val.quot; + val.rem = numerator % denominator; - if (val.rem > 0 && val.quot < 0) { + if (numerator >= 0 && val.rem < 0) { val.rem -= denominator; ++val.quot; } @@ -33,9 +34,9 @@ ldiv(long numerator, long denominator) ldiv_t val; val.quot = numerator / denominator; - val.rem = numerator - denominator * val.quot; + val.rem = numerator % denominator; - if (val.rem > 0 && val.quot < 0) { + if (numerator >= 0 && val.rem < 0) { val.rem -= denominator; ++val.quot; } @@ -50,9 +51,9 @@ lldiv(long long numerator, long long denominator) lldiv_t val; val.quot = numerator / denominator; - val.rem = numerator - denominator * val.quot; + val.rem = numerator % denominator; - if (val.rem > 0 && val.quot < 0) { + if (numerator >= 0 && val.rem < 0) { val.rem -= denominator; ++val.quot; }