Changes from arch/CVS synchronization
authorLudovic Courtès <ludo@gnu.org>
Wed, 17 Oct 2007 21:56:10 +0000 (21:56 +0000)
committerLudovic Courtès <ludo@gnu.org>
Wed, 17 Oct 2007 21:56:10 +0000 (21:56 +0000)
ChangeLog
NEWS
libguile/ChangeLog
libguile/read.c
test-suite/ChangeLog
test-suite/tests/reader.test

index de8fac5..fb211a2 100644 (file)
--- 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 70d6fe6..41e5c17 100644 (file)
--- 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.
 
+
+\f
+Changes in 1.8.4 (since 1.8.3)
+
+* Bugs fixed
+
+** CR (ASCII 0x0d) is (again) recognized as a token delimiter by the reader
+
 \f
 Changes in 1.8.3 (since 1.8.2)
 
index 4990216..4a1ff35 100644 (file)
@@ -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
index d1013c5..53715f2 100644 (file)
@@ -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)
 {
index 2a84350..5f76ba7 100644 (file)
@@ -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
index 7f24aa6..d6047a2 100644 (file)
   (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)))
 
 \f
 (pass-if-exception "radix passed to number->string can't be zero"