blueloveTH 1 год назад
Родитель
Сommit
e8e5fa897c
2 измененных файлов с 9 добавлено и 5 удалено
  1. 1 1
      src/common/sstream.c
  2. 8 4
      src/public/py_number.c

+ 1 - 1
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') {

+ 8 - 4
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;
 }