mirror of
https://github.com/janet-lang/janet
synced 2024-12-27 17:00:27 +00:00
Fix bad integer printing range.
This commit is contained in:
parent
36ef1c4749
commit
db261aabf4
@ -37,7 +37,11 @@
|
|||||||
|
|
||||||
static void number_to_string_b(JanetBuffer *buffer, double x) {
|
static void number_to_string_b(JanetBuffer *buffer, double x) {
|
||||||
janet_buffer_ensure(buffer, buffer->count + BUFSIZE, 2);
|
janet_buffer_ensure(buffer, buffer->count + BUFSIZE, 2);
|
||||||
const char *fmt = (x == floor(x) && x <= 2.0e53 && x >= -2.0e53) ? "%.0f" : "%g";
|
/* Use int32_t range for valid integers because that is the
|
||||||
|
* range most integer-expecting functions in the C api use. */
|
||||||
|
const char *fmt = (x == floor(x) &&
|
||||||
|
x <= ((double) INT32_MAX) &&
|
||||||
|
x >= ((double) INT32_MIN)) ? "%.0f" : "%g";
|
||||||
int count = snprintf((char *) buffer->data + buffer->count, BUFSIZE, fmt, x);
|
int count = snprintf((char *) buffer->data + buffer->count, BUFSIZE, fmt, x);
|
||||||
buffer->count += count;
|
buffer->count += count;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user