Use %READ-CHAR/%WRITE-CHAR in coding conversions.
authorTaylor R Campbell <campbell@mumble.net>
Sat, 25 Jun 2011 19:28:48 +0000 (19:28 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sun, 26 Jun 2011 16:08:36 +0000 (16:08 +0000)
Elides redundant port checks.

src/runtime/unicode.scm

index 8bb84968783cd7df41ba79eac27033a15d2a4ff6..b0cd71d592add97ca57a245be962f656cbd68af5 100644 (file)
@@ -258,10 +258,10 @@ USA.
   (let ((input (open-input string start end))
        (output (open-output)))
     (let loop ()
-      (let ((c (read-char input)))
+      (let ((c (%read-char input)))
        (if (not (eof-object? c))
            (begin
-             (write-char c output)
+             (%write-char c output)
              (loop)))))
     (get-output-string! output)))
 \f
@@ -681,7 +681,7 @@ USA.
 (define (for-all-chars-in-string? predicate string #!optional start end coding)
   (let ((port (open-string string start end coding 'FOR-ALL-CHARS-IN-STRING?)))
     (let loop ()
-      (let ((char (read-char port)))
+      (let ((char (%read-char port)))
        (cond ((eof-object? char) #t)
              ((predicate char) (loop))
              (else #f))))))
@@ -689,7 +689,7 @@ USA.
 (define (for-any-char-in-string? predicate string #!optional start end coding)
   (let ((port (open-string string start end coding 'FOR-ANY-CHAR-IN-STRING?)))
     (let loop ()
-      (let ((char (read-char port)))
+      (let ((char (%read-char port)))
        (cond ((eof-object? char) #f)
              ((predicate char) #t)
              (else (loop)))))))