From e77f0360be74b753eb39000508eb206f3f318cab Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Thu, 24 Oct 2019 12:49:52 +0200 Subject: [PATCH] core: eq_p: Prepare for M2-Planet. * src/mes.c (eq_p): Prepare for M2-Planet. --- src/mes.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/mes.c b/src/mes.c index 6ba272a4..9f3a14a0 100644 --- a/src/mes.c +++ b/src/mes.c @@ -113,13 +113,31 @@ null_p (SCM x) SCM eq_p (SCM x, SCM y) { - if (x == y - || ((TYPE (x) == TKEYWORD && TYPE (y) == TKEYWORD - && string_equal_p (x, y) == cell_t)) - || (TYPE (x) == TCHAR && TYPE (y) == TCHAR - && VALUE (x) == VALUE (y)) - || (TYPE (x) == TNUMBER && TYPE (y) == TNUMBER && VALUE (x) == VALUE (y))) + if (x == y) return cell_t; + int t = TYPE (x); + if (t == TKEYWORD) + { + if (TYPE (y) == TKEYWORD) + return string_equal_p (x, y); + return cell_f; + } + if (t == TCHAR) + { + if (TYPE (y) != TCHAR) + return cell_f; + if (VALUE (x) == VALUE (y)) + return cell_t; + return cell_f; + } + if (t == TNUMBER) + { + if (TYPE (y) != TNUMBER) + return cell_f; + if (VALUE (x) == VALUE (y)) + return cell_t; + return cell_f; + } return cell_f; }