diff --git a/asdf.lisp b/asdf.lisp index 08c29b8fcce92bac47e83a04f99a3388bde08a25..76710f531059a8cefc2ee20f662c6ead092816d7 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -262,7 +262,7 @@ ;; This parameter isn't actually user-visible ;; -- please use the exported function ASDF:ASDF-VERSION below. ;; the 1+ hair is to ensure that we don't do an inadvertent find and replace - (subseq "VERSION:1.654" (1+ (length "VERSION")))) + (subseq "VERSION:1.655" (1+ (length "VERSION")))) (defun asdf-version () "Exported interface to the version of ASDF currently installed. A string. @@ -2393,7 +2393,9 @@ with a different configuration, so the configuration would be re-read then." '(:output-translations :inherit-configuration)) ((not (stringp string)) (error "environment string isn't: ~S" string)) - ((find (char string 0) "\"(") + ((eql (char string 0) #\") + (parse-output-translations-string (read-from-string string))) + ((eql (char string 0) #\() (validate-output-translations-form (read-from-string string))) (t (loop @@ -2416,7 +2418,7 @@ with a different configuration, so the configuration would be re-read then." (t (setf source s))) (setf start (1+ i)) - (when (>= start end) + (when (> start end) (when source (error "Uneven number of components in source to destination mapping ~S" string)) (unless inherit diff --git a/asdf.texinfo b/asdf.texinfo index 4f28ee07d27189fb772436e7d0e1c111befd5439..a139fd908abe99fee8f2bb9f3a7887160fb3ccd3 100644 --- a/asdf.texinfo +++ b/asdf.texinfo @@ -2123,7 +2123,7 @@ which by default is the same as using Configuration directories consist in files each contains a list of directives without any enclosing -@code{(:asdf-output-translations ...)} form. +@code{(:output-translations ...)} form. The files will be sorted by namestring as if by @code{#'string<} and the lists of directives of these files with be concatenated in order. An implicit @code{:inherit-configuration} will be included diff --git a/test/test-utilities.script b/test/test-utilities.script index 9475d2b127b50e739fb40255e43c10497b8f8362..602ea48742215348cc7034d837e59681e4f731e8 100644 --- a/test/test-utilities.script +++ b/test/test-utilities.script @@ -41,4 +41,20 @@ (asdf::version-satisfies (asdf:asdf-version) "1.608")) (assert (not (asdf::version-satisfies (asdf:asdf-version) "666"))) + +(assert + (equal (asdf::parse-output-translations-string "/foo:/bar::/baz:/quux") + '(:output-translations + ("/foo" "/bar") + :inherit-configuration + ("/baz" "/quux")))) +(assert + (equal (asdf::parse-output-translations-string "/:") + '(:output-translations ("/" nil) :ignore-inherited-configuration))) +(assert + (equal (asdf::parse-output-translations-string "/::") + '(:output-translations ("/" nil) :inherit-configuration))) +(assert + (equal (asdf::parse-output-translations-string "/:/") + '(:output-translations ("/" "/") :ignore-inherited-configuration))) )