runtime/stringio (string-in/read-substring): Swap src/dst strings.
authorMatt Birkholz <matt@birchwood-abbey.net>
Wed, 26 Jul 2017 23:05:54 +0000 (16:05 -0700)
committerMatt Birkholz <matt@birchwood-abbey.net>
Wed, 26 Jul 2017 23:05:54 +0000 (16:05 -0700)
src/runtime/stringio.scm

index b717aa0d959242c6aa7642aa1cf2840926684e7b..b101a87af431f999966f5e5a3ac7e9347ddf82d2 100644 (file)
@@ -97,10 +97,12 @@ USA.
     (let ((string* (istate-string ss))
          (start* (istate-next ss))
          (end* (istate-end ss)))
-      (let ((n (fix:min (fix:- end start) (fix:- end* start*))))
-       (string-copy! string* start* string start (fix:+ start n))
-       (set-istate-next! ss (fix:+ start* n))
-       n))))
+      (if (fix:= start* end*)
+         0
+         (let ((n (fix:min (fix:- end start) (fix:- end* start*))))
+           (string-copy! string start string* start* (fix:+ start* n))
+           (set-istate-next! ss (fix:+ start* n))
+           n)))))
 
 (define (string-in/unread-char port char)
   (let ((ss (textual-port-state port)))