guile-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile/guile-core/libguile ChangeLog numbers.c


From: Mikael Djurfeldt
Subject: guile/guile-core/libguile ChangeLog numbers.c
Date: Thu, 20 Sep 2001 15:00:26 -0400

CVSROOT:        /cvs
Module name:    guile
Branch:         branch_release-1-6
Changes by:     Mikael Djurfeldt <address@hidden>       01/09/20 15:00:26

Modified files:
        guile-core/libguile: ChangeLog numbers.c 

Log message:
        * numbers.c (scm_integer_expt): Accept inexact integer in second
        argument.  (Thanks to Bill Schottstaedt.)

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/ChangeLog.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.1465.2.24&tr2=1.1465.2.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/numbers.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.135.2.3&tr2=1.135.2.4&r1=text&r2=text

Patches:
Index: guile/guile-core/libguile/ChangeLog
diff -u guile/guile-core/libguile/ChangeLog:1.1512 
guile/guile-core/libguile/ChangeLog:1.1513
--- guile/guile-core/libguile/ChangeLog:1.1512  Thu Sep 20 12:47:25 2001
+++ guile/guile-core/libguile/ChangeLog Thu Sep 20 14:53:32 2001
@@ -1,3 +1,8 @@
+2001-09-20  Mikael Djurfeldt  <address@hidden>
+
+       * numbers.c (scm_integer_expt): Accept inexact integer in second
+       argument.  (Thanks to Bill Schottstaedt.)
+
 2001-09-20  Rob Browning  <address@hidden>
 
        * .cvsignore: add version.h
Index: guile/guile-core/libguile/numbers.c
diff -u guile/guile-core/libguile/numbers.c:1.140 
guile/guile-core/libguile/numbers.c:1.141
--- guile/guile-core/libguile/numbers.c:1.140   Sat Sep  1 13:17:50 2001
+++ guile/guile-core/libguile/numbers.c Thu Sep 20 14:53:32 2001
@@ -1118,7 +1118,15 @@
   else if (SCM_EQ_P (n, SCM_MAKINUM (-1L)))
     return SCM_FALSEP (scm_even_p (k)) ? n : acc;
 #endif
-  SCM_VALIDATE_ULONG_COPY (2,k,i2);
+  if (SCM_REALP (k))
+    {
+      double r = SCM_REAL_VALUE (k);
+      i2 = r;
+      if (i2 != r)
+       SCM_WRONG_TYPE_ARG (2, k);
+    }
+  else
+    SCM_VALIDATE_ULONG_COPY (2,k,i2);
   if (i2 < 0)
     {
       i2 = -i2;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]