From 8247e13bafea3dd04d5788ff380ee2f04b51dce9 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Wed, 26 May 2021 10:05:40 +0900 Subject: [PATCH] remove superfluous + when printing complex numbers with negative ratio imaginary parts --- include/chibi/sexp.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/include/chibi/sexp.h b/include/chibi/sexp.h index dbead7c8..86435616 100644 --- a/include/chibi/sexp.h +++ b/include/chibi/sexp.h @@ -1046,11 +1046,14 @@ SEXP_API sexp sexp_make_unsigned_integer(sexp ctx, sexp_luint_t x); #define sexp_negativep(x) (sexp_exact_negativep(x) || \ (sexp_flonump(x) && sexp_flonum_value(x) < 0)) #define sexp_positivep(x) (!(sexp_negativep(x))) -#define sexp_pedantic_negativep(x) (sexp_exact_negativep(x) || \ - (sexp_flonump(x) && \ - ((sexp_flonum_value(x) < 0) || \ - (sexp_flonum_value(x) == 0 && \ - 1.0 / sexp_flonum_value(x) < 0)))) +#define sexp_pedantic_negativep(x) ( \ + sexp_exact_negativep(x) || \ + (sexp_ratiop(x) && \ + sexp_exact_negativep(sexp_ratio_numerator(x))) || \ + (sexp_flonump(x) && \ + ((sexp_flonum_value(x) < 0) || \ + (sexp_flonum_value(x) == 0 && \ + 1.0 / sexp_flonum_value(x) < 0)))) #if SEXP_USE_BIGNUMS #define sexp_oddp(x) (sexp_fixnump(x) ? sexp_unbox_fixnum(x) & 1 : \