Changeset 11744 in project


Ignore:
Timestamp:
08/25/08 02:24:40 (12 years ago)
Author:
Ivan Raikov
Message:

Updated to use defstruct instead of define-record.

Location:
release/3/uri-generic/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • release/3/uri-generic/trunk/uri-generic.meta

    r11562 r11744  
    1818 ; A list of eggs uri-generic depends on.
    1919
    20  (needs syntax-case matchable )
     20 (needs syntax-case matchable defstruct )
    2121
    2222 (doc-from-wiki)
  • release/3/uri-generic/trunk/uri-generic.scm

    r11614 r11744  
    4141(require-extension syntax-case)
    4242(require-extension matchable)
     43(require-extension defstruct)
    4344(require-extension srfi-1)
    4445(require-extension srfi-4)
     
    6364   (else (use srfi-13 srfi-14)))
    6465
    65 (define-record URI      scheme authority path query fragment)
    66 (define-record URIAuth  username password host port)
     66(defstruct URI      scheme authority path query fragment)
     67(defstruct URIAuth  username password host port)
    6768
    6869(define-record-printer (URI x out)
     
    249250                         ((uf rst)      (match rst ((#\# . rst) (fragment rst))
    250251                                               (else (list #f rst)))))
    251                         (make-URI (string->symbol (list->string us)) ua
    252                                   (map uri-char-list->string up) (and uq (filter-map query->string uq))
    253                                   (and uf (uri-char-list->string uf)))))
     252                        (make-URI scheme: (string->symbol (list->string us)) authority: ua
     253                                  path: (map uri-char-list->string up) query: (and uq (filter-map query->string uq))
     254                                  fragment: (and uf (uri-char-list->string uf)))))
    254255         (else #f))))
    255256
     
    280281               ((uh rst)      (host rst))
    281282               ((up rst)      (or (port rst) (list #f rst))))
    282               (list (make-URIAuth (and uu (uri-char-list->string uu)) (and uw (uri-char-list->string uw))
    283                                   (uri-char-list->string uh)
    284                                   (and (pair? up) (string->number (list->string up))))
     283              (list (make-URIAuth username: (and uu (uri-char-list->string uu))
     284                                  password: (and uw (uri-char-list->string uw))
     285                                  host: (uri-char-list->string uh)
     286                                  port: (and (pair? up) (string->number (list->string up))))
    285287                    rst)))
    286288
     
    624626                    ((uf rst)     (match rst ((#\# . rst) (fragment rst))
    625627                                         (else (list #f rst)))))
    626                    (make-URI #f ua (map uri-char-list->string up)
    627                              (and uq (filter-map query->string uq))
    628                              (and uf (uri-char-list->string uf))))))
     628                   (make-URI scheme: #f authority: ua path: (map uri-char-list->string up)
     629                             query: (and uq (filter-map query->string uq))
     630                             fragment: (and uf (uri-char-list->string uf))))))
    629631(define (relative-part s)
    630632  (match s
     
    646648                      ((uq rst)     (match rst ((#\? . rst)  (query rst))
    647649                                           (else (list (list) rst)))))
    648                      (make-URI us ua up uq #f)))))
     650                     (make-URI scheme: us authority: ua path: up query: uq fragment: #f)))))
    649651                     
    650652
     
    773775(define (just-segments u)
    774776  (let ((p (remove-dot-segments (uri-path u))))
    775     (make-URI (uri-scheme u) (uri-auth u) p
    776               (uri-query u) (uri-fragment u))))
     777    (make-URI scheme: (uri-scheme u) authority: (uri-auth u) path: p
     778              query: (uri-query u) fragment: (uri-fragment u))))
    777779
    778780(define (merge0 pb pr)
    779781  (let* ((rpb  (reverse pb))
    780782         (pb1  (reverse (if (not (string=? (car rpb) "/")) (cdr rpb) rpb)))
    781          (pr1  (or (and (pair? pr) (not (string-prefix? ".." (car pr))) (not (string-prefix? "." (car pr)))
     783         (pr1  (or (and (pair? pr) (not (string=? ".." (car pr))) (not (string=? "." (car pr)))
    782784                        (not (string-prefix? "/" (car pr)))
    783785                        (cons (string-append "/" (car pr)) (cdr pr)))
     
    795797  (let ((rs (uri-scheme ref))
    796798        (rb (uri-scheme base)))
    797     (let ((ref1 (make-URI (if (eq? rs rb) #f (uri-scheme ref))
    798                           (uri-auth ref) (uri-path ref)
    799                           (uri-query ref) (uri-fragment ref))))
     799    (let ((ref1 (make-URI scheme: (if (eq? rs rb) #f (uri-scheme ref))
     800                          authority: (uri-auth ref) path: (uri-path ref)
     801                          query: (uri-query ref) fragment: (uri-fragment ref))))
    800802      (uri-relative-to ref1 base))))
    801803
     
    867869
    868870(define (udup u)
    869   (make-URI (uri-scheme u) (uri-auth u) (uri-path u)
    870             (uri-query u) (uri-fragment u)))
     871  (make-URI scheme: (uri-scheme u) authority: (uri-auth u) path: (uri-path u)
     872            query: (uri-query u) fragment: (uri-fragment u)))
    871873
    872874(define (ucdiff? sel u1 u2)
  • release/3/uri-generic/trunk/uri-generic.setup

    r11615 r11744  
    2121
    2222  ;; Assoc list with properties for your extension:
    23   '((version 1.1)
     23  '((version 1.2)
    2424    (documentation "uri-generic.html")
    2525    ,@(if has-exports? `((exports "uri-generic.exports")) (list)) ))
Note: See TracChangeset for help on using the changeset viewer.