Changeset 36522 in project


Ignore:
Timestamp:
09/06/18 08:03:40 (13 days ago)
Author:
sjamaan
Message:

Port latest uri-generic changes to C5

Location:
release/5/uri-generic/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/5/uri-generic/trunk/tests/run.scm

    r35619 r36522  
    247247     ("//:123" "")
    248248     ;; Thanks to Roel van der Hoorn for finding this one
    249      ("//%20/" "%20"))
     249     ("//%20/" "%20")
     250     ;; From #1530, found by Vasilij Schneidermann
     251     ("http://[::1]:8080" "::1"))
    250252    ("port" ,uri-port
    251253     ("//host:123" 123))
  • release/5/uri-generic/trunk/uri-generic.scm

    r35619 r36522  
    388388
    389389(define (consume-min-max m n f)
    390   (lambda (s) 
     390  (lambda (s)
    391391    (let loop ((m m) (n n) (lst (list)) (rst s))
    392392      (cond ((positive? m)
     
    395395                    (else #f)))
    396396            ((<= n 0)   (list (reverse lst) rst))
    397             (else
    398              (match (f rst)
    399                     ((a1 rst) (loop 0 (- n 1) (cons a1 lst) rst))
    400                     (else #f)))))))
     397            (else
     398             (match (f rst)
     399                    ((a1 rst) (loop 0 (- n 1) (cons a1 lst) rst))
     400                    (else (list '() rst))))
     401            ))
     402    ))
    401403
    402404;; Helper function for malformed ip address error messages
     
    581583
    582584(define (ip-literal s)
    583   (match s ((#\[ . rst) 
    584             (match (or (ipv6-address rst) (ipv-future rst))
    585                    ((ua (#\] . rst))  (list ua rst))
     585  (match s ((#\[ . rst)
     586            (match (or (ipv6-address rst) (ipv-future rst))
     587                   ((ua (#\] . rst))  (list ua rst))
    586588                   (else (uri-error 'ip-literal "malformed ip literal"
    587                                 (try-ip-literal->string rst)))))
     589                                    (try-ip-literal->string rst)))))
    588590         (else #f)))
    589591
     
    618620(define (ipv6-address s)
    619621  (or (match (u6-h4c s) ;; 6( h16 ":" ) ls32
    620 
    621              ((a2 rst)  (match (ls32 rst)
    622                                ((a3 rst)  (list (append (concatenate a2) a3) rst))
    623                                (else #f)))
     622             ((a2 rst) (match (ls32 rst)
     623                              ((a3 rst)  (list (append (concatenate a2) a3) rst))
     624                              (else #f)))
    624625             (else #f))
    625626      (match s          ;; "::" 5( h16 ":" ) ls32
    626              ((#\: #\: . rst) 
    627               (match (u5-h4c rst)
    628                      ((a2 rst)  (match (ls32 rst)
    629                                        ((a3 rst)  (list (append (list #\: #\:) (concatenate a2) a3) rst))
    630                                        (else #f)))))
    631              (else #f))
     627             ((#\: #\: . rst) 
     628              (match (u5-h4c rst)
     629                     ((a2 rst)  (match (ls32 rst)
     630                                       ((a3 rst)  (list (append (list #\: #\:) (concatenate a2) a3) rst))
     631                                       (else #f)))
     632                     (else #f)))
     633             (else #f))
    632634      (match (u_opt_n_h4c_h4 0 s)
    633              ((a1 rst) (match rst
    634                               ((#\: #\: . rst) 
    635                                (match (u4-h4c rst)
    636                                       ((a2 rst)  (match (ls32 rst)
    637                                                         ((a3 rst) 
    638                                                         (list (append (concatenate a1) (list #\: #\:)
    639                                                                        (concatenate a2) a3) rst))
    640                                                         (else #f)))
    641                                       (else #f)
    642                                       ))
    643                               (else #f)))
    644               (else #f))
     635             ((a1 rst) (match rst
     636                              ((#\: #\: . rst) 
     637                               (match (u4-h4c rst)
     638                                      ((a2 rst)  (match (ls32 rst)
     639                                                        ((a3 rst) 
     640                                                        (list (append (concatenate a1) (list #\: #\:)
     641                                                                       (concatenate a2) a3) rst))
     642                                                        (else #f)))
     643                                      (else #f)
     644                                      ))
     645                              (else #f)))
     646             (else #f))
    645647      (match (u_opt_n_h4c_h4 1 s)
    646648             ((a1 rst)
     
    688690                                      (else #f)))
    689691                              (else #f)))
    690               (else #f))
     692             (else #f))
    691693      (match (u_opt_n_h4c_h4 5 s)
    692              ((a1 rst) (match rst       
    693                               ((#\: #\: . rst) 
    694                                (match (h4 rst)
    695                                       ((a3 rst)  (list (append (concatenate a1) (list #\: #\:) a3) rst))
    696                                       (else #f)))
    697                               (else #f)))
    698               (else #f))
     694             ((a1 rst) (match rst       
     695                              ((#\: #\: . rst)
     696                               (match (h4 rst)
     697                                      ((a3 rst)  (list (append (concatenate a1) (list #\: #\:) a3) rst))
     698                                      (else #f)))
     699                              (else #f)))
     700               (else #f))
    699701      (match (u_opt_n_h4c_h4 6 s)
    700702             ((a1 rst) (match rst       
     
    710712  (match ((consume-min-max 0 n h4c) s)
    711713         ((a1 rst)  (match (h4 rst)
    712                            ((a2 rst) (list (append a1 (list a2)) rst))
    713                            (else #f)))
     714                           ((a2 rst) (list (append a1 (list a2)) rst))
     715                           (else (list a1 rst))))
    714716         (else #f)))
    715717
Note: See TracChangeset for help on using the changeset viewer.