X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src.lisp;h=a189331f87b81e9c07d2460e10fb66d0751b2d93;hb=409ffc1a2cf6a9c0066d1fed555d19bad6ae6706;hp=eaf599a8b4953bacdb77b290f2cc26f1a33765f5;hpb=ccfeb8799cab1bba23f41ab1e18bd6d1700ab731;p=puri.git diff --git a/src.lisp b/src.lisp index eaf599a..a189331 100644 --- a/src.lisp +++ b/src.lisp @@ -22,10 +22,11 @@ ;; Original version from ACL 6.1: ;; uri.cl,v 2.3.6.4.2.1 2001/08/09 17:42:39 layer ;; -;; $Id: src.lisp,v 1.9 2003/07/20 18:51:48 kevin Exp $ +;; $Id$ (defpackage #:puri (:use #:cl) + #-allegro (:nicknames #:net.uri) (:export #:uri ; the type and a function #:uri-p @@ -92,10 +93,11 @@ (lisp::shrink-vector str size) #+lispworks (system::shrink-vector$vector str size) - #+(or allegro cmu sbcl lispworks) - str - #-(or allegro cmu sbcl lispworks) - (subseq str 0 size)) + #+scl + (common-lisp::shrink-vector str size) + #-(or allegro cmu lispworks sbcl scl) + (setq str (subseq str 0 size)) + str) ;; KMR: Added new condition to handle cross-implementation variances @@ -898,6 +900,8 @@ URI ~s contains illegal character ~s at position ~d." (vector #\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9 #\a #\b #\c #\d #\e #\f)) (defun encode-escaped-encoding (string reserved-chars escape) + (unless (typep string 'simple-string) + (setq string (coerce string 'simple-string))) (when (null escape) (return-from encode-escaped-encoding string)) ;; Make a string as big as it possibly needs to be (3 times the original ;; size), and truncate it at the end.