From e8e5fa897c468b5cec9de6fb2496c1bcbc968616 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 18 Jan 2025 22:40:01 +0800 Subject: [PATCH] ... --- src/common/sstream.c | 2 +- src/public/py_number.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/common/sstream.c b/src/common/sstream.c index c34937c2..eaab46fb 100644 --- a/src/common/sstream.c +++ b/src/common/sstream.c @@ -253,7 +253,7 @@ int py_replinput(char* buf, int max_size) { printf(">>> "); while(true) { - char c = getchar(); + int c = getchar(); if(c == EOF) return -1; if(c == '\n') { diff --git a/src/public/py_number.c b/src/public/py_number.c index aa8a9dcf..f02f50d7 100644 --- a/src/public/py_number.c +++ b/src/public/py_number.c @@ -123,13 +123,17 @@ static bool number__pow__(int argc, py_Ref argv) { return true; } +static py_i64 i64_abs(py_i64 x) { + return x < 0 ? -x : x; +} + static py_i64 cpy11__fast_floor_div(py_i64 a, py_i64 b) { assert(b != 0); if(a == 0) return 0; if((a < 0) == (b < 0)) { - return labs(a) / labs(b); + return i64_abs(a) / i64_abs(b); } else { - return -1 - (labs(a) - 1) / labs(b); + return -1 - (i64_abs(a) - 1) / i64_abs(b); } } @@ -138,9 +142,9 @@ static py_i64 cpy11__fast_mod(py_i64 a, py_i64 b) { if(a == 0) return 0; py_i64 res; if((a < 0) == (b < 0)) { - res = labs(a) % labs(b); + res = i64_abs(a) % i64_abs(b); } else { - res = labs(b) - 1 - (labs(a) - 1) % labs(b); + res = i64_abs(b) - 1 - (i64_abs(a) - 1) % i64_abs(b); } return b < 0 ? -res : res; }