Previously cxml:parse-file would cause an error in pathname-to-uri when handed a pathname with :back or :up entries in the directory component. This change ensures that a suitable base-uri is generated in those cases. --- xml/xml-parse.lisp | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/xml/xml-parse.lisp b/xml/xml-parse.lisp index eb8e338..546b60b 100644 --- a/xml/xml-parse.lisp +++ b/xml/xml-parse.lisp @@ -3030,7 +3030,9 @@ #-cxml-system::uri-is-namestring (defun pathname-to-uri (pathname) (let ((path - (append (pathname-directory pathname) + (append (mapcar #'(lambda (x) (cond ((member x '(:up :back)) "..") + (t x))) + (pathname-directory pathname)) (list (if (specific-or (pathname-type pathname)) (concatenate 'string
Quoting Pierre R. Mai (pmai@pmsf.de):
Previously cxml:parse-file would cause an error in pathname-to-uri when handed a pathname with :back or :up entries in the directory component. This change ensures that a suitable base-uri is generated in those cases.
Thanks. I'm not entirely sure that leaving .. in pathnames is the right thing either, but it's better than an error, so I have committed that patch to git.
d.