summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--NEWS8
-rw-r--r--libguile/ChangeLog6
-rw-r--r--libguile/read.c7
-rw-r--r--test-suite/ChangeLog5
-rw-r--r--test-suite/tests/reader.test6
6 files changed, 31 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index de8fac559..fb211a22f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-10-17 Ludovic Courtès <ludo@gnu.org>
+
+ * NEWS: Mention reader bug-fix.
+
2007-10-16 Ludovic Courtès <ludo@gnu.org>
Guile 1.8.3 released.
diff --git a/NEWS b/NEWS
index 70d6fe699..41e5c17c9 100644
--- a/NEWS
+++ b/NEWS
@@ -31,6 +31,14 @@ This slightly improves program startup times.
** Functions for handling `scm_option' now no longer require an argument
indicating length of the `scm_t_option' array.
+
+
+Changes in 1.8.4 (since 1.8.3)
+
+* Bugs fixed
+
+** CR (ASCII 0x0d) is (again) recognized as a token delimiter by the reader
+
Changes in 1.8.3 (since 1.8.2)
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 4990216c7..4a1ff3536 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-17 Ludovic Courtès <ludo@gnu.org>
+
+ * read.c (CHAR_IS_BLANK_): Add `\r' (ASCII 0x0d). This fixes a
+ regression compared to 1.8.2. Reported by Puneet
+ <schemer@gmail.com>.
+
2007-10-10 Ludovic Courtès <ludo@gnu.org>
* pthread-threads.h (SCM_I_PTHREAD_MUTEX_INITIALIZER): Check
diff --git a/libguile/read.c b/libguile/read.c
index d1013c586..53715f2b5 100644
--- a/libguile/read.c
+++ b/libguile/read.c
@@ -150,7 +150,7 @@ static SCM *scm_read_hash_procedures;
/* `isblank' is only in C99. */
#define CHAR_IS_BLANK_(_chr) \
(((_chr) == ' ') || ((_chr) == '\t') || ((_chr) == '\n') \
- || ((_chr) == '\f'))
+ || ((_chr) == '\f') || ((_chr) == '\r'))
#ifdef MSDOS
# define CHAR_IS_BLANK(_chr) \
@@ -182,9 +182,8 @@ static SCM *scm_read_hash_procedures;
/* Read an SCSH block comment. */
static inline SCM scm_read_scsh_block_comment (int chr, SCM port);
-/* Helper function similar to `scm_read_token ()'. Read from PORT until a
- whitespace is read. Return zero if the whole token could fit in BUF,
- non-zero otherwise. */
+/* Read from PORT until a delimiter (e.g., a whitespace) is read. Return
+ zero if the whole token fits in BUF, non-zero otherwise. */
static inline int
read_token (SCM port, char *buf, size_t buf_size, size_t *read)
{
diff --git a/test-suite/ChangeLog b/test-suite/ChangeLog
index 2a84350c8..5f76ba76a 100644
--- a/test-suite/ChangeLog
+++ b/test-suite/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-17 Ludovic Courtès <ludo@gnu.org>
+
+ * tests/reader.test (reading)[CR recognized as a token
+ delimiter]: New test.
+
2007-10-10 Ludovic Courtès <ludo@gnu.org>
* standalone/test-conversion.c: Include <inttypes.h> where
diff --git a/test-suite/tests/reader.test b/test-suite/tests/reader.test
index 7f24aa695..d6047a2d3 100644
--- a/test-suite/tests/reader.test
+++ b/test-suite/tests/reader.test
@@ -84,7 +84,11 @@
(pass-if "unprintable symbol"
;; The reader tolerates unprintable characters for symbols.
(equal? (string->symbol "\001\002\003")
- (read-string "\001\002\003"))))
+ (read-string "\001\002\003")))
+
+ (pass-if "CR recognized as a token delimiter"
+ ;; In 1.8.3, character 0x0d was not recognized as a delimiter.
+ (equal? (read-string "one\x0dtwo") 'one)))
(pass-if-exception "radix passed to number->string can't be zero"