Changeset 13228 in project


Ignore:
Timestamp:
02/09/09 22:10:45 (11 years ago)
Author:
sjamaan
Message:

Get absolute-uri to throw an error when parsing an uri reference containing a fragment

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

Legend:

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

    r13209 r13228  
    127127              (let ((ubase (uri-reference (first p)))
    128128                    (urabs  (uri-reference (second p)))
    129                     (uabs  (absolute-uri (second p)))
    130129                    (uex   (uri-reference (third p))))
    131130                (let* ((from (uri-relative-from urabs ubase))
     
    133132                  (test (apply sprintf "~S * ~S -> ~S" p) uex from)
    134133                  (test (apply sprintf "~S * ~S -> ~S" p) urabs to)
    135                   (if (not (uri-fragment urabs))
    136                       (test (sprintf "~S = ~S" uabs urabs) urabs uabs))
     134                  (unless (uri-fragment urabs)
     135                    (let ((uabs  (absolute-uri (second p))))
     136                      (test (sprintf "~S = ~S" uabs urabs) urabs uabs)))
    137137                  ))
    138138              (for-each
  • release/4/uri-generic/trunk/uri-generic.scm

    r13213 r13228  
    707707                         ((uq rst)     (match rst ((#\? . rst)  (query rst))
    708708                                              (else (list #f rst)))))
    709                         (make-URI scheme: (string->symbol (list->string us)) authority: ua
    710                                   path: (uri-path-list->path up) query: (and uq (uri-char-list->string uq))
    711                                   fragment: #f)))
     709                        (match rst
     710                               ((#\# . rst) (error 'absolute-uri "fragments are not permitted in absolute URI"))
     711                               (else (make-URI scheme: (string->symbol (list->string us)) authority: ua
     712                                               path: (uri-path-list->path up)
     713                                               query: (and uq (uri-char-list->string uq))
     714                                               fragment: #f)))))
    712715           (else (error 'absolute-uri "no scheme found in URI string")))))
    713716
Note: See TracChangeset for help on using the changeset viewer.