diff --git a/test.json b/test.json index 6f0f2dbd..3a37d992 100644 --- a/test.json +++ b/test.json @@ -13,5 +13,6 @@ ], "'NULL' U+0000": "\u0000", "'VULGAR FRACTION ONE HALF' U+00BD": "\u00BD", - "'PILE OF POO' U+1F4A9": "\uD83D\uDCA9" + "'PILE OF POO' U+1F4A9": "\uD83D\uDCA9", + "min_int": "-4611686018427387904" } diff --git a/write.ml b/write.ml index d5968ed9..6e3f51f8 100644 --- a/write.ml +++ b/write.ml @@ -85,7 +85,7 @@ let rec write_digits s pos x = else let d = x mod 10 in let pos = write_digits s pos (x / 10) in - s.[pos] <- dec d; + s.[pos] <- dec (abs d); pos + 1 let write_int ob x = @@ -96,7 +96,7 @@ let write_int ob x = let s = ob.o_s in let pos = ob.o_len in s.[pos] <- '-'; - ob.o_len <- write_digits s (pos + 1) (abs x) + ob.o_len <- write_digits s (pos + 1) x ) else Bi_outbuf.add_char ob '0'