diff --git a/asdf-dependency-grovel.asd b/asdf-dependency-grovel.asd index 78f18fa133b5748285a68d8449c08e4778433477..bc03b9d63ef3850b96be98a5a16b73b4dbe6a236 100644 --- a/asdf-dependency-grovel.asd +++ b/asdf-dependency-grovel.asd @@ -1,6 +1,10 @@ ;;; -*- Mode: Lisp -*- -(cl:in-package #:asdf) +(cl:in-package :asdf) + +(unless (or #+asdf2 (asdf:version-satisfies (asdf:asdf-version) "2.014.8")) + (error "Not only is your ASDF version is too old for ASDF-DEPENDENCY-GROVEL, + you must upgrade it *before* you try to load any system.")) (defclass grovel-handlers (module) ((%components :accessor %handler-components))) @@ -26,7 +30,7 @@ (handler-input-file-list (component-pathname c) c)))) (defsystem :asdf-dependency-grovel - ;; :depends-on (:asdf) ; not safe. ASDF must be explicitly upgraded in advance. + :depends-on ((:version :asdf "2.017")) :components ((:file "package") (:file "variables" :depends-on ("package")) (:file "classes" :depends-on ("package" "variables")) diff --git a/grovel.lisp b/grovel.lisp index 3924461911412dde5dfc56b304f31172b308bf86..c1162e5dce15ddc68398a2c0324da1ad9a652c47 100644 --- a/grovel.lisp +++ b/grovel.lisp @@ -500,10 +500,10 @@ (defun strip/ (name) (subseq name (1+ (or (position #\/ name :from-end t) -1)))) (defun strip-extension (name extension) - (let* ((lext (length extension)) - (lnam (length name)) - (pos (- lnam lext))) - (if (and (plusp lext) + (let* ((lext (and (stringp extension) (length extension))) + (pext (and lext (plusp lext))) + (pos (and pext (- (length name) lext)))) + (if (and pos (< 1 pos) (string= name extension :start1 pos) (eql #\. (char name (1- pos))))