From c2a60d9b4ff9f70505a6240e1e960e7c6230e4af Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 11 Dec 2025 17:32:26 -0500 Subject: Print reals --- src/stdlib/print.c | 6 ++++++ src/stdlib/print.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/stdlib/print.c b/src/stdlib/print.c index 7da1343f..5d90d6c3 100644 --- a/src/stdlib/print.c +++ b/src/stdlib/print.c @@ -7,13 +7,16 @@ #include "fpconv.h" #include "print.h" +#include "reals.h" #include "util.h" public int _print_int(FILE *f, int64_t n) { + if (n == 0) return fputc('0', f); char buf[21] = {[20] = 0}; // Big enough for INT64_MIN + '\0' char *p = &buf[19]; bool negative = n < 0; + if (negative) n = -n; do { *(p--) = '0' + (n % 10); @@ -92,6 +95,9 @@ int _print_double(FILE *f, double n) { return (int)fwrite(buf, sizeof(char), (size_t)len, f); } +public +int _print_real(FILE *f, Real_t n) { return Text$print(f, Real$value_as_text(n, 10)); } + public int _print_hex_double(FILE *f, hex_double_t hex) { if (hex.d != hex.d) return fputs("NAN", f); diff --git a/src/stdlib/print.h b/src/stdlib/print.h index 7106d561..65de72a0 100644 --- a/src/stdlib/print.h +++ b/src/stdlib/print.h @@ -77,6 +77,7 @@ typedef struct { int _print_int(FILE *f, int64_t x); int _print_uint(FILE *f, uint64_t x); int _print_double(FILE *f, double x); +int _print_real(FILE *f, Real_t x); int _print_hex(FILE *f, hex_format_t hex); int _print_hex_double(FILE *f, hex_double_t hex); int _print_oct(FILE *f, oct_format_t oct); @@ -116,6 +117,7 @@ extern int Int$print(FILE *f, Int_t i); uint8_t: _print_uint, \ float: _print_float, \ double: _print_double, \ + Real_t: _print_real, \ hex_format_t: _print_hex, \ hex_double_t: _print_hex_double, \ oct_format_t: _print_oct, \ -- cgit v1.2.3