summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHan-Wen Nienhuys <hanwen@lilypond.org>2004-09-14 21:10:56 +0000
committerHan-Wen Nienhuys <hanwen@lilypond.org>2004-09-14 21:10:56 +0000
commitadba74f3a6350434a3369121f7372ce593082832 (patch)
tree083fa18a3398ffd0be843ed9532a6140891bf8ad
parent2bd2014d986312825378275d2c87180b5d33f479 (diff)
downloadguile-adba74f3a6350434a3369121f7372ce593082832.tar.gz
2004-09-13 Jan Nieuwenhuizen <janneke@gnu.org>
* srfi-13.c (scm_string_contains, s_scm_string_contains_ci): Bugfix: when subtracting unsigned values, make sure that result does not wrap.
-rw-r--r--libguile/ChangeLog6
-rw-r--r--libguile/gc-segment.c2
-rw-r--r--libguile/srfi-13.c4
3 files changed, 9 insertions, 3 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 010651287..1b6e6ff43 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -1,3 +1,9 @@
+2004-09-13 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * srfi-13.c (scm_string_contains, s_scm_string_contains_ci):
+ Bugfix: when subtracting unsigned values, make sure that result
+ does not wrap.
+
2004-09-09 Kevin Ryde <user42@zip.com.au>
* filesys.c, stime.c (_POSIX_C_SOURCE): Use this only on hpux, it
diff --git a/libguile/gc-segment.c b/libguile/gc-segment.c
index 332624deb..6a39de4e6 100644
--- a/libguile/gc-segment.c
+++ b/libguile/gc-segment.c
@@ -128,7 +128,7 @@ scm_i_clear_segment_mark_space (scm_t_heap_segment *seg)
}
/*
- Sweep cards from SEG until we've gather THRESHOLD cells
+ Sweep cards from SEG until we've gathered THRESHOLD cells
RETURN:
diff --git a/libguile/srfi-13.c b/libguile/srfi-13.c
index eb495af61..eed0fa7cd 100644
--- a/libguile/srfi-13.c
+++ b/libguile/srfi-13.c
@@ -2253,7 +2253,7 @@ SCM_DEFINE (scm_string_contains, "string-contains", 2, 4, 0,
5, start2, cstart2,
6, end2, cend2);
len2 = cend2 - cstart2;
- while (cstart1 <= cend1 - len2)
+ while (cstart1 <= cend1 - len2 && cend1 >= len2)
{
i = cstart1;
j = cstart2;
@@ -2299,7 +2299,7 @@ SCM_DEFINE (scm_string_contains_ci, "string-contains-ci", 2, 4, 0,
5, start2, cstart2,
6, end2, cend2);
len2 = cend2 - cstart2;
- while (cstart1 <= cend1 - len2)
+ while (cstart1 <= cend1 - len2 && cend1 >= len2)
{
i = cstart1;
j = cstart2;