From 7217f8167c411f3fd6185718d413d2e4cf06906b Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Mon, 23 Nov 1998 10:24:35 +0000 Subject: [PATCH] * numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest, scm_logbit_p): Do the computation in ulongs. This is not as nice as doing it in bignums, but at least it's good enough for manipulating flags in 32-bit words. (Thanks to Jim Wilson.) --- libguile/numbers.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libguile/numbers.c b/libguile/numbers.c index 3b35fcca8..df873a5fb 100644 --- a/libguile/numbers.c +++ b/libguile/numbers.c @@ -420,8 +420,8 @@ scm_logand(n1, n2) return SCM_MAKINUM (-1); return n1; } - return scm_long2num (scm_num2long(n1, (char *)SCM_ARG1, s_logand) - & scm_num2long(n2, (char *)SCM_ARG2, s_logand)); + return scm_ulong2num (scm_num2ulong(n1, (char *)SCM_ARG1, s_logand) + & scm_num2ulong(n2, (char *)SCM_ARG2, s_logand)); } SCM_PROC1 (s_logior, "logior", scm_tc7_asubr, scm_logior); @@ -437,8 +437,8 @@ scm_logior(n1, n2) return SCM_INUM0; return n1; } - return scm_long2num(scm_num2long(n1, (char *)SCM_ARG1, s_logior) - | scm_num2long(n2, (char *)SCM_ARG2, s_logior)); + return scm_ulong2num(scm_num2ulong(n1, (char *)SCM_ARG1, s_logior) + | scm_num2ulong(n2, (char *)SCM_ARG2, s_logior)); } SCM_PROC1 (s_logxor, "logxor", scm_tc7_asubr, scm_logxor); @@ -454,8 +454,8 @@ scm_logxor(n1, n2) return SCM_INUM0; return n1; } - return scm_long2num(scm_num2long(n1, (char *)SCM_ARG1, s_logxor) - ^ scm_num2long(n2, (char *)SCM_ARG2, s_logxor)); + return scm_ulong2num(scm_num2ulong(n1, (char *)SCM_ARG1, s_logxor) + ^ scm_num2ulong(n2, (char *)SCM_ARG2, s_logxor)); } SCM_PROC(s_logtest, "logtest", 2, 0, 0, scm_logtest); @@ -465,8 +465,8 @@ scm_logtest(n1, n2) SCM n1; SCM n2; { - return ((scm_num2long (n1, (char *)SCM_ARG1, s_logtest) - & scm_num2long (n2, (char *)SCM_ARG2, s_logtest)) + return ((scm_num2ulong (n1, (char *)SCM_ARG1, s_logtest) + & scm_num2ulong (n2, (char *)SCM_ARG2, s_logtest)) ? SCM_BOOL_T : SCM_BOOL_F); } @@ -479,7 +479,7 @@ scm_logbit_p(n1, n2) SCM n2; { return (((1 << scm_num2long (n1, (char *)SCM_ARG1, s_logtest)) - & scm_num2long (n2, (char *)SCM_ARG2, s_logtest)) + & scm_num2ulong (n2, (char *)SCM_ARG2, s_logtest)) ? SCM_BOOL_T : SCM_BOOL_F); }