remove uri-parser PARSE-URI

(completely out-of-date, has never seen RFC 2396)
This commit is contained in:
vibr 2004-10-06 13:33:45 +00:00
parent 649f374e8b
commit 2cb8502f9e
1 changed files with 0 additions and 34 deletions

View File

@ -14,40 +14,6 @@
;;; - http://www.w3.org/hypertext/WWW/Addressing/URL/URI_Overview.html ;;; - http://www.w3.org/hypertext/WWW/Addressing/URL/URI_Overview.html
;;; General Web page of URI pointers. ;;; General Web page of URI pointers.
(define uri-reserved (string->char-set ";/#?: ="))
(define uri-reserved-sans-= (char-set-delete uri-reserved #\=))
;;; Note: this "uri-parser" has never been adapted to RCF 2396
;;; (Uniform Resource Identifiers: Generic Syntax)
;;; It is rather useless by now since it's hard to determine
;;; exactly which subset of RFC 2396's URIs it works for
;;;(plus the subset it works for is a rather arbitrary one).
(define (parse-uri s)
(let* ((slen (string-length s))
;; Search forwards for colon (or intervening reserved char).
(rs1 (string-index s uri-reserved)) ; 1st reserved char
(colon (and rs1 (char=? (string-ref s rs1) #\:) rs1))
(path-start (if colon (+ colon 1) 0))
;; Search backwards for # (or intervening reserved char).
(rs-last (string-index-right s uri-reserved))
(sharp (and rs-last (char=? (string-ref s rs-last) #\#) rs-last))
;; Search backwards for ? (or intervening reserved char).
;; (NB: #\= may be after #\? and before #\#)
(rs-penult (string-index-right s
uri-reserved-sans-=
path-start
(or sharp slen)))
(ques (and rs-penult (char=? (string-ref s rs-penult) #\?) rs-penult))
(path-end (or ques sharp slen)))
(values (and colon (substring s 0 colon))
(split-uri s path-start path-end)
(and ques (substring s (+ ques 1) (or sharp slen)))
(and sharp (substring s (+ sharp 1) slen)))))
;;; Caution: ;;; Caution:
;;; Don't use this proc until *after* you've parsed the URL -- unescaping ;;; Don't use this proc until *after* you've parsed the URL -- unescaping