Changeset 13300 in project


Ignore:
Timestamp:
02/14/09 15:58:47 (11 years ago)
Author:
felix winkelmann
Message:

applied read-lime-limit patch by Jim Ursetto

Location:
chicken/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/TODO

    r13246 r13300  
    3737*** library/runtime: cyclic list checks for assq/assv/assoc/memq/memv/member
    3838    and C_i_list_tail
     39*** finalizers on lexically ref'd data not working in interpreter (reported
     40    by Jim Ursetto)
    3941
    4042** build
  • chicken/trunk/support.scm

    r13138 r13300  
    114114(set! ##sys#syntax-error-hook
    115115  (lambda (msg . args)
    116     (let ([out (current-error-port)])
    117       (fprintf out "Syntax error: ~a~%~%" msg)
     116    (let ((out (current-error-port))
     117          (loc (and (symbol? msg)
     118                    (begin
     119                      (set! msg (car args))
     120                      (set! args (cdr args))
     121                      msg))))
     122      (if loc
     123          (fprintf out "Syntax error (~a): ~a~%~%" loc msg)
     124          (fprintf out "Syntax error: ~a~%~%" msg) )
    118125      (for-each (cut fprintf out "\t~s~%" <>) args)
    119126      (print-call-chain out 0 ##sys#current-thread "\n\tExpansion history:\n")
  • chicken/trunk/tcp.scm

    r13138 r13300  
    415415                              (loop n m start) ) ) ) ) )
    416416               (lambda (p limit)        ; read-line
    417                  (let loop ((str #f))
     417                 (let loop ((str #f)
     418                            (limit (or limit (##sys#fudge 21))))
    418419                   (cond ((fx< bufindex buflen)
    419420                          (##sys#scan-buffer-line
    420421                           buf
    421                            buflen
     422                           (fxmin buflen limit)
    422423                           bufindex
    423424                           (lambda (pos2 next)
    424                              (let ((dest (##sys#make-string (fx- pos2 bufindex))))
     425                             (let* ((len (fx- pos2 bufindex))
     426                                    (dest (##sys#make-string len)))
    425427                               (##core#inline "C_substring_copy" buf dest bufindex pos2 0)
    426428                               (set! bufindex next)
    427                                (cond ((eq? pos2 next) ; no line-terminator encountered
     429                               (cond ((eq? pos2 limit) ; no line-terminator, hit limit
     430                                      (if str (##sys#string-append str dest) dest))
     431                                     ((eq? pos2 next)  ; no line-terminator, hit buflen
    428432                                      (read-input)
    429433                                      (if (fx>= bufindex buflen)
    430434                                          (or str "")
    431                                           (loop (if str (##sys#string-append str dest) dest)) ) )
     435                                          (loop (if str (##sys#string-append str dest) dest)
     436                                                (fx- limit len)) ) )
    432437                                     (else
    433438                                      (##sys#setislot p 4 (fx+ (##sys#slot p 4) 1))
     
    436441                          (read-input)
    437442                          (if (fx< bufindex buflen)
    438                               (loop str)
     443                              (loop str limit)
    439444                              #!eof) ) ) ) ) ) )
    440445             (output
Note: See TracChangeset for help on using the changeset viewer.