From ea73b774b07cb08b36f906b50c8b2140385b0cb6 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Mon, 27 Jan 1992 11:04:42 +0000 Subject: [PATCH] Don't depend on read to return a full buffer from a pipe. --- v7/src/edwin/process.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/v7/src/edwin/process.scm b/v7/src/edwin/process.scm index 43c9f22f8..1c353c40a 100644 --- a/v7/src/edwin/process.scm +++ b/v7/src/edwin/process.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/process.scm,v 1.16 1992/01/24 23:13:51 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/process.scm,v 1.17 1992/01/27 11:04:42 cph Exp $ ;;; ;;; Copyright (c) 1991-92 Massachusetts Institute of Technology ;;; @@ -549,8 +549,7 @@ after the listing is made.)" (if (> n 0) (begin (insert-substring buffer 0 n output-mark) - (if (= n 512) - (loop)))))))) + (loop))))))) (subprocess-wait process)))) (define (call-with-output-copier process output-mark receiver) @@ -560,11 +559,10 @@ after the listing is made.)" (lambda () (let loop () (let ((n (channel-read channel buffer 0 512))) - (if (and n (positive? n)) + (if (and n (> n 0)) (begin (insert-substring buffer 0 n output-mark) - (if (= n 512) - (loop)))))))))) + (loop))))))))) (channel-nonblocking channel) (let ((status (receiver copy-output))) (channel-blocking channel) -- 2.25.1