aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-03-28 17:17:46 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-03-28 17:17:46 -0400
commitc4533e5706838222bf8de094a06c40202566de0e (patch)
tree09e9463fae438d1b847f65f53e3b9774d34dd10f
parenta615d55146e83ca43d9e1ae7f85cbe727d58db45 (diff)
Change format specifiers
-rw-r--r--src/stdlib/print.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/stdlib/print.h b/src/stdlib/print.h
index 22684625..5cbfbdbd 100644
--- a/src/stdlib/print.h
+++ b/src/stdlib/print.h
@@ -85,13 +85,19 @@ typedef struct {
} quoted_t;
#define quoted(s) ((quoted_t){s})
+#ifdef __OpenBSD__
+#define FMT64 "ll"
+#else
+#define FMT64 "l"
+#endif
+
#if PRINT_COLOR
#define hl(s) "\033[35m" s "\033[m"
#else
#define hl(s) s
#endif
-PRINT_FN _print_int(FILE *f, int64_t x) { return fprintf(f, hl("%lld"), x); }
-PRINT_FN _print_uint(FILE *f, uint64_t x) { return fprintf(f, hl("%llu"), x); }
+PRINT_FN _print_int(FILE *f, int64_t x) { return fprintf(f, hl("%"FMT64"d"), x); }
+PRINT_FN _print_uint(FILE *f, uint64_t x) { return fprintf(f, hl("%"FMT64"u"), x); }
PRINT_FN _print_float(FILE *f, float x) { return fprintf(f, hl("%g"), (double)x); }
PRINT_FN _print_double(FILE *f, double x) { return fprintf(f, hl("%g"), x); }
PRINT_FN _print_pointer(FILE *f, void *p) { return fprintf(f, hl("%p"), p); }
@@ -100,10 +106,10 @@ PRINT_FN _print_str(FILE *f, const char *s) { return fputs(s, f); }
int _print_char(FILE *f, char c);
int _print_quoted(FILE *f, quoted_t quoted);
PRINT_FN _print_hex(FILE *f, hex_format_t hex) {
- return fprintf(f, hex.no_prefix ? (hex.uppercase ? hl("%0*llX") : hl("%0*llx")) : (hex.uppercase ? hl("0x%0*llX") : hl("%#0*llx")), hex.digits, hex.n);
+ return fprintf(f, hex.no_prefix ? (hex.uppercase ? hl("%0*"FMT64"X") : hl("%0*"FMT64"x")) : (hex.uppercase ? hl("0x%0*"FMT64"X") : hl("%#0*"FMT64"x")), hex.digits, hex.n);
}
PRINT_FN _print_oct(FILE *f, oct_format_t oct) {
- return fprintf(f, oct.no_prefix ? hl("%0*llo") : hl("%#0*llo"), oct.digits, oct.n);
+ return fprintf(f, oct.no_prefix ? hl("%0*"FMT64"o") : hl("%#0*"FMT64"o"), oct.digits, oct.n);
}
PRINT_FN _print_num_format(FILE *f, num_format_t num) {
return fprintf(f, hl("%.*lf"), num.precision, num.n);