Commit 1c768744 authored by Ryan Davis's avatar Ryan Davis Committed by Kevin Rosenberg

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
parent 3d8bae19
......@@ -355,10 +355,14 @@
;; Parsing
(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 #\#
;; `unwise':
#\{ #\} #\| #\\ #\^ #\[ #\] #\`))
#\{ #\} #\| #\\ #\^ #\[ #\] #\`)))
(defun reserved-char-vector (chars &key except)
(do* ((a (make-array 127 :element-type 'bit :initial-element 0))
......
......@@ -408,6 +408,16 @@
:condition-type 'uri-parse-error)
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))))
(defun do-tests ()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment