X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/417a2cd6ea2c9f06d559dead10b6bdeeac6e8c98..68c8bf5e0f069f8bd252088b45346b9307b92c84:/gffi/interface.lisp diff --git a/gffi/interface.lisp b/gffi/interface.lisp index 3c56e1b..4291a75 100644 --- a/gffi/interface.lisp +++ b/gffi/interface.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: interface.lisp,v 1.1 2006/04/25 20:36:05 espen Exp $ +;; $Id: interface.lisp,v 1.3 2006/08/16 11:02:45 espen Exp $ (in-package "GFFI") @@ -53,17 +53,11 @@ (defun default-alien-fname (lisp-name) (let* ((name (substitute #\_ #\- (string-downcase lisp-name))) - (stripped-name - (cond - ((and - (char= (char name 0) #\%) - (string= "_p" name :start2 (- (length name) 2))) - (subseq name 1 (- (length name) 2))) - ((char= (char name 0) #\%) - (subseq name 1)) - ((string= "_p" name :start2 (- (length name) 2)) - (subseq name 0 (- (length name) 2))) - (name))) + (start (position-if-not #'(lambda (char) (char= char #\%)) name)) + (end (if (string= "_p" name :start2 (- (length name) 2)) + (- (length name) 2) + (length name))) + (stripped-name (subseq name start end)) (prefix (package-prefix *package*))) (if (or (not prefix) (string= prefix "")) stripped-name @@ -429,7 +423,7 @@ (lookup-method (type-spec) (if (and (symbolp type-spec) (find-class type-spec nil)) (let ((class (find-class type-spec))) - #+clisp + #?(or (sbcl>= 0 9 15) (featurep :clisp)) (unless (class-finalized-p class) (finalize-inheritance class)) (search-method-in-cpl-order