/[cmucl]/src/code/fd-stream.lisp
ViewVC logotype

Diff of /src/code/fd-stream.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.85.4.1.2.9 by rtoy, Wed Apr 22 00:30:23 2009 UTC revision 1.85.4.1.2.10 by rtoy, Thu Apr 23 16:08:25 2009 UTC
# Line 929  Line 929 
929    `(lambda (stream)    `(lambda (stream)
930       (declare (type fd-stream stream)       (declare (type fd-stream stream)
931                (optimize (speed 3) (space 0) (debug 0) (safety 0)))                (optimize (speed 3) (space 0) (debug 0) (safety 0)))
932      (catch 'eof-input-catcher       (catch 'eof-input-catcher
933        (let* ((head (fd-stream-ibuf-head stream))         (let* ((head (fd-stream-ibuf-head stream))
934               (ch (stream::octets-to-char ,extfmt                (ch (stream::octets-to-char ,extfmt
935                                           (fd-stream-oc-state stream)                                            (fd-stream-oc-state stream)
936                                           (fd-stream-last-char-read-size stream)                                            (fd-stream-last-char-read-size stream)
937                                           ;;@@ Note: need proper EOF handling...                                            ;;@@ Note: need proper EOF handling...
938                                           (progn                                            (progn
939                                             (when (= head                                              (when (= head
940                                                      (fd-stream-ibuf-tail                                                       (fd-stream-ibuf-tail
941                                                       stream))                                                        stream))
942                                               (do-input stream)                                                (let ((sofar (- head (fd-stream-ibuf-head stream))))
943                                               (setf head                                                  (do-input stream)
944                                                   (fd-stream-ibuf-head stream)))                                                  (setf head
945                                             (bref (fd-stream-ibuf-sap stream)                                                        (+ (fd-stream-ibuf-head stream)
946                                                   (1- (incf head))))                                                           sofar))))
947                                           (lambda (n) (decf head n)))))                                              (bref (fd-stream-ibuf-sap stream)
948          (declare (type index head))                                                    (1- (incf head))))
949          (when ch                                            (lambda (n) (decf head n)))))
950            (incf (fd-stream-ibuf-head stream)           (declare (type index head))
951                  (fd-stream-last-char-read-size stream))           (when ch
952            ch)))))             (incf (fd-stream-ibuf-head stream)
953                     (fd-stream-last-char-read-size stream))
954               ch)))))
955    
956  #+(or)  #+(or)
957  (stream::def-ef-macro ef-sin (extfmt lisp stream::+ef-max+ stream::+ef-sin+)  (stream::def-ef-macro ef-sin (extfmt lisp stream::+ef-max+ stream::+ef-sin+)

Legend:
Removed from v.1.85.4.1.2.9  
changed lines
  Added in v.1.85.4.1.2.10

  ViewVC Help
Powered by ViewVC 1.1.5