Add US-ASCII unprintable control characters to the exlusion list per RFC2396 2.4.3

http://www.ietf.org/rfc/rfc2396.txt

Adds to *excluded-characters*, with a test
This commit is contained in:
Ryan Davis
2010-04-02 16:41:19 -04:00
committed by Kevin Rosenberg
parent 3d8bae190c
commit 1c76874430
2 changed files with 16 additions and 2 deletions

View File

@ -355,10 +355,14 @@
;; Parsing ;; Parsing
(defparameter *excluded-characters* (defparameter *excluded-characters*
'(;; `delims' (except #\%, because it's handled specially): (append
(loop for i from 0 to #x1f
collect (code-char i))
'(;; `delims' (except #\%, because it's handled specially):
#\< #\> #\" #\space #\# #\< #\> #\" #\space #\#
;; `unwise': ;; `unwise':
#\{ #\} #\| #\\ #\^ #\[ #\] #\`)) #\{ #\} #\| #\\ #\^ #\[ #\] #\`)))
(defun reserved-char-vector (chars &key except) (defun reserved-char-vector (chars &key except)
(do* ((a (make-array 127 :element-type 'bit :initial-element 0)) (do* ((a (make-array 127 :element-type 'bit :initial-element 0))

View File

@ -408,6 +408,16 @@
:condition-type 'uri-parse-error) :condition-type 'uri-parse-error)
res) res)
;;an escaped newline isn't rendered properly
(push
`(let ((weird-uri "https://example.com/q?foo%0abar%20baz"))
(test
weird-uri
(puri:render-uri (puri:parse-uri weird-uri) nil)
:test #'string=)
) res)
`(progn ,@(nreverse res)))) `(progn ,@(nreverse res))))
(defun do-tests () (defun do-tests ()