Changeset 31135 in project


Ignore:
Timestamp:
07/20/14 05:46:09 (6 years ago)
Author:
Jim Ursetto
Message:

socket 0.2.6: handle change in return signature for ##sys#scan-buffer-line in CHICKEN 4.8.2

Location:
release/4/socket/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/4/socket/trunk/socket.scm

    r30149 r31135  
    588588                           (non-nil (integer->protocol-type protocol) protocol)))
    589589    (let ((so (make-socket s family socktype protocol)))
     590      ;; Immediately set all sockets in non-blocking mode, even UDP.
     591      ;; See http://lists.nongnu.org/archive/html/chicken-users/2013-06/msg00062.html
    590592      (unless (_make_socket_nonblocking s)
    591593        (network-error/errno 'socket "unable to set socket to non-blocking" so))
     
    11541156                              m
    11551157                              (loop n m start) ) ) ) ) )
     1158               #-scan-buffer-line-returns-3-vals
    11561159               (lambda (p limit)        ; read-line
    11571160                 (let loop ((str #f)
     
    11831186                              (loop str limit)
    11841187                              #!eof) ) ) ) )
     1188               #+scan-buffer-line-returns-3-vals
     1189               (lambda (p limit)        ; read-line
     1190                 (when (fx>= bufindex buflen)
     1191                   (read-input))
     1192                 (if (fx>= bufindex buflen)
     1193                     #!eof
     1194                     (let ((limit (or limit (fx- (##sys#fudge 21) bufindex))))
     1195                       (receive (next line full-line?)
     1196                           (##sys#scan-buffer-line
     1197                            buf
     1198                            (fxmin buflen (fx+ bufindex limit))
     1199                            bufindex
     1200                            (lambda (pos)
     1201                              (let ((nbytes (fx- pos bufindex)))
     1202                                (cond ((fx>= nbytes limit)
     1203                                       (values #f pos #f))
     1204                                      (else (read-input)
     1205                                            (set! limit (fx- limit nbytes))
     1206                                            (if (fx< bufindex buflen)
     1207                                                (values buf bufindex
     1208                                                        (fxmin buflen
     1209                                                               (fx+ bufindex limit)))
     1210                                                (values #f bufindex #f))))) ) )
     1211                         ;; Update row & column position
     1212                         (if full-line?
     1213                             (begin
     1214                               (##sys#setislot p 4 (fx+ (##sys#slot p 4) 1))
     1215                               (##sys#setislot p 5 0))
     1216                             (##sys#setislot p 5 (fx+ (##sys#slot p 5)
     1217                                                      (##sys#size line))))
     1218                         (set! bufindex next)
     1219                         line) )) )
    11851220               ;; (lambda (p)           ; read-buffered
    11861221               ;;   (if (fx>= bufindex buflen)
  • release/4/socket/trunk/socket.setup

    r30149 r31135  
    22(compile socket-features.scm)
    33(run (./socket-features > socket-config.scm))
    4 (compile -s -O2 -d1 -X socket-config.scm -X feature-test-syntax
     4(define defines '())
     5
     6;; ##sys#scan-buffer-line changed to return 3 values in
     7;; 002ea4128f8 and a302a6dcc9 (approximately Chicken 4.8.2).
     8(when (version>=? (chicken-version) "4.8.2")
     9      (set! defines `(-D scan-buffer-line-returns-3-vals ,@defines)))
     10
     11(compile -s -O2 -d1 -X socket-config.scm -X feature-test-syntax ,@defines
    512         socket-mod.scm -o socket.so -j socket)
    613(compile -s -d0 socket.import.scm)
     
    916 'socket
    1017 '("socket.so" "socket.import.so")
    11  '((version "0.2.5")))
     18 '((version "0.2.6")))
Note: See TracChangeset for help on using the changeset viewer.