From michal at lisp.pl Wed Jun 4 10:07:56 2014 From: michal at lisp.pl (=?UTF-8?Q?Micha=C5=82_Psota?=) Date: Wed, 04 Jun 2014 10:07:56 -0000 Subject: [Plexippus-xpath-devel] Bug in xpath, when use with *print-case* set to :downcase. Message-ID: Hello, I've noticed that xpath doesn't compile correctly when you use print-case set to :downcase. It is because of define-default-method macro in protocol.lisp. Simplified testcase: (setf *print-case* :upcase) (find-symbol (format nil "~a~a" 'foo :-using-navigator) (find-package 'cl-user)) ? t (setf *print-case* :downcase) (find-symbol (format nil "~a~a" 'foo :-using-navigator) (find-package 'cl-user))? nil After fix: (setf *print-case* :upcase) (find-symbol (format nil "~:@(~a~a~)" 'foo :-using-navigator) (find-package 'cl-user)) ? t (setf *print-case* :downcase) (find-symbol (format nil "~:@(~a~a~)" 'foo :-using-navigator) (find-package 'cl-user)) ? t Patch attached. Best regards, Micha? Psota -------------- next part -------------- --- /tmp/plexippus-xpath-2008-12-07/protocol.lisp 2008-12-07 11:30:13.000000000 +0100 +++ /tmp/xpath/protocol.lisp 2014-05-28 09:35:37.024922887 +0200 @@ -38,7 +38,7 @@ (macrolet ((defprotocol (name &rest extra-args) (let ((navi-name (find-symbol - (format nil "~A~A" name :-using-navigator) + (format nil "~:@(~A~A~)" name :-using-navigator) (symbol-package name)))) `(progn (defgeneric ,navi-name (navigator node , at extra-args)) @@ -72,7 +72,7 @@ (defmacro define-default-method (name (&rest args) &body body) (let ((navi-name (find-symbol - (format nil "~A~A" name :-using-navigator) + (format nil "~:@(~A~A~)" name :-using-navigator) (symbol-package name)))) `(defmethod ,navi-name ((navigator (eql :default-navigator)) , at args) , at body)))