Ticket #79: diff

File diff, 779 bytes (added by Tony Sidaway, 15 years ago)

svn diff for suggested fix (patches z3.scm)

  • z3.scm

     
    220220(define (z3:open-compressed-input-file filename)
    221221  (let* ((fd (file-open filename (bitwise-ior open/read open/binary)))
    222222         (z3 (z3:decode-file fd))
     223         (eof #f)
    223224         (buf #f)
    224225         (len 0)
    225226         (pos 0) )
    226227    (define (read-next)
    227       (let ((b (z3:read-decoded z3)))
    228         (cond ((eof-object? b) b)
    229               (else
    230                (set! buf b)
    231                (set! len (string-length b)) ) ) ) )
     228      (if eof
     229        #!eof
     230        (let ((b (z3:read-decoded z3)))
     231          (cond ((eof-object? b)
     232                 (set! eof #t)
     233                 b)
     234                (else
     235                 (set! buf b)
     236                 (set! len (string-length b)) ) ) ) ) )
    232237    (make-input-port
    233238     (lambda ()
    234239       (cond ((fx>= pos len)