File tree Expand file tree Collapse file tree 2 files changed +14
-6
lines changed
Expand file tree Collapse file tree 2 files changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -95,10 +95,8 @@ in order of descending QL-DIST:PREFERENCE."
9595 :direction :output
9696 :if-exists if-exists)
9797 (with-consistent-dists
98- ; ; FIXME: Should avoid emitting lines for systems with system
99- ; ; files with a pathname-name that does not match the system
100- ; ; name. They're not normally loadable anyway.
101- (let ((systems (provided-systems t )))
98+ (let ((systems (provided-systems t ))
99+ (already-seen (make-hash-table :test ' equal)))
102100 (dolist (system (sort systems #' >
103101 :key #' preference))
104102 ; ; FIXME: find-asdf-system-file does another find-system
@@ -108,7 +106,8 @@ in order of descending QL-DIST:PREFERENCE."
108106 (enough (and system-file (enough-namestring system-file
109107 output-file)))
110108 (native (and enough (native-namestring enough))))
111- (when native
109+ (when (and native (not (gethash native already-seen)))
110+ (setf (gethash native already-seen) native)
112111 (format stream " ~A~% " native)))))))
113112 (probe-file output-file))
114113
Original file line number Diff line number Diff line change @@ -605,13 +605,22 @@ the given NAME."
605605 " Instances of this class have a special location for their
606606 preference files." ))
607607
608+ (defgeneric filesystem-name (object)
609+ (:method (object)
610+ ; ; This is to work around system names like "foo/bar".
611+ (let* ((name (name object))
612+ (slash (position #\/ name)))
613+ (if slash
614+ (subseq name 0 slash)
615+ name))))
616+
608617(defmethod preference-file ((object preference-mixin))
609618 (relative-to
610619 (dist object)
611620 (make-pathname :directory (list :relative
612621 " preferences"
613622 (metadata-name object))
614- :name (name object)
623+ :name (filesystem- name object)
615624 :type " txt" )))
616625
617626(defmethod distinfo-subscription-url :around ((dist dist))
You can’t perform that action at this time.
0 commit comments