Patch from Edi Weitz to fix parsing of URI like '%25%23'
[puri.git] / src.lisp
index d39d32b249b127e83b6ff8925472923998bb95f1..da6d9fd2af08c1a8812a6c428678e79c2c4a6971 100644 (file)
--- a/src.lisp
+++ b/src.lisp
 
 (defparameter *excluded-characters*
     (append
+     ;; exclude control characters
      (loop for i from 0 to #x1f
           collect (code-char i))
      '(;; `delims' (except #\%, because it's handled specially):
       #\< #\> #\" #\space #\#
-
+      #\Rubout ;; (code-char #x7f)
       ;; `unwise':
-      #\{ #\} #\| #\\ #\^ #\[ #\] #\`)))
+      #\{ #\} #\| #\\ #\^ #\[ #\] #\`))
+  "Excluded charcters from RFC2369 (http://www.ietf.org/rfc/rfc2396.txt 2.4.3)")
 
 (defun reserved-char-vector (chars &key except)
-  (do* ((a (make-array 127 :element-type 'bit :initial-element 0))
+  (do* ((a (make-array 128 :element-type 'bit :initial-element 0))
         (chars chars (cdr chars))
         (c (car chars) (car chars)))
       ((null chars) a)
 (defparameter *reserved-path-characters*
     (reserved-char-vector
      (append *excluded-characters*
-             '(#\;
+             '(#\; #\%
 ;;;;The rfc says this should be here, but it doesn't make sense.
                ;; #\=
                #\/ #\?))))