#| -*-Scheme-*-
-$Id: io.scm,v 14.61 2000/04/10 18:32:34 cph Exp $
+$Id: io.scm,v 14.62 2001/01/06 19:08:00 cph Exp $
-Copyright (c) 1988-2000 Massachusetts Institute of Technology
+Copyright (c) 1988-2001 Massachusetts Institute of Technology
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
(define (channel-read channel buffer start end)
(let ((do-read
(lambda ()
- ((ucode-primitive channel-read 4) (channel-descriptor channel)
- buffer start end))))
+ ((ucode-primitive channel-read 4)
+ (channel-descriptor channel)
+ (if (external-string? buffer)
+ (external-string-descriptor buffer)
+ buffer)
+ start
+ end))))
(declare (integrate-operator do-read))
(if (and have-select? (not (channel-type=file? channel)))
(with-thread-events-blocked
\f
(define (channel-write channel buffer start end)
((ucode-primitive channel-write 4) (channel-descriptor channel)
- buffer start end))
+ (if (external-string? buffer)
+ (external-string-descriptor buffer)
+ buffer)
+ start
+ end))
(define (channel-write-block channel buffer start end)
(let loop ((start start) (n-left (- end start)))
#| -*-Scheme-*-
-$Id: runtime.pkg,v 14.357 2001/01/05 20:06:57 cph Exp $
+$Id: runtime.pkg,v 14.358 2001/01/06 19:07:55 cph Exp $
Copyright (c) 1988-2001 Massachusetts Institute of Technology
xsubstring-move!)
(export (runtime char-syntax)
guarantee-substring)
+ (export (runtime primitive-io)
+ external-string-descriptor)
(initialization (initialize-package!)))
(define-package (runtime 1d-property)