summaryrefslogtreecommitdiff
path: root/srfi
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2007-01-15 23:42:45 +0000
committerKevin Ryde <user42@zip.com.au>2007-01-15 23:42:45 +0000
commit23d72566286b3b2b6fec9548cbfdb5d79685e973 (patch)
treec6ca72b9de559edc3c14033a1b6fcfd9578b7519 /srfi
parentcea95a2fa1f2ec810f0322a038a3af33da309e4a (diff)
downloadguile-23d72566286b3b2b6fec9548cbfdb5d79685e973.tar.gz
merge from 1.8
Diffstat (limited to 'srfi')
-rw-r--r--srfi/ChangeLog6
-rw-r--r--srfi/srfi-60.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/srfi/ChangeLog b/srfi/ChangeLog
index 1d77d7747..e662163fb 100644
--- a/srfi/ChangeLog
+++ b/srfi/ChangeLog
@@ -1,3 +1,9 @@
+2006-12-02 Kevin Ryde <user42@zip.com.au>
+
+ * srfi-60.c (scm_srfi60_copy_bit): Should be long not int for fixnum
+ bitshift, fixes 64-bit systems setting a bit between 32 and 63.
+ Reported by Aaron M. Ucko, Debian bug 396119.
+
2006-05-28 Kevin Ryde <user42@zip.com.au>
* srfi-1.scm, srfi-1.c, srfi-1.h (append-reverse, append-reverse!):
diff --git a/srfi/srfi-60.c b/srfi/srfi-60.c
index 257b1387f..f631c6447 100644
--- a/srfi/srfi-60.c
+++ b/srfi/srfi-60.c
@@ -86,7 +86,7 @@ SCM_DEFINE (scm_srfi60_copy_bit, "copy-bit", 3, 0, 0,
if (ii < SCM_LONG_BIT-1)
{
nn &= ~(1L << ii); /* zap bit at index */
- nn |= (bb << ii); /* insert desired bit */
+ nn |= ((long) bb << ii); /* insert desired bit */
return scm_from_long (nn);
}
else