Skip to content

Commit a6a68ae

Browse files
committed
Merge slashes-in-manifest branch
2 parents fb11f06 + 986f9e6 commit a6a68ae

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

quicklisp/client.lisp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff 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

quicklisp/dist.lisp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff 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))

0 commit comments

Comments
 (0)