0.pre7.141:
[sbcl.git] / src / pcl / describe.lisp
index 6efcba5..e04d40c 100644 (file)
   (pprint-logical-block (stream nil)
     (format stream "~&~S is a ~S." package (type-of package))
     (format stream
-           "~@[~&It has nicknames ~{~:_~S~^ ~}~]"
+           "~@[~&It has nicknames ~2I~{~:_~S~^ ~}~]"
            (package-nicknames package))
     (let* ((internal (package-internal-symbols package))
           (internal-count (- (package-hashtable-size internal)
       (format stream
              "~&It has ~S internal and ~S external symbols."
              internal-count external-count))
-    (format stream
-           "~@[~&It uses ~{~:_~S~^ ~}~]"
-           (package-use-list package))
-    (format stream
-           "~@[~&It is used by ~{~:_~S~^ ~}~]"
-           (package-used-by-list package))))
+    (flet (;; Turn a list of packages into something a human likes
+          ;; to read.
+          (humanize (package-list)
+            (sort (mapcar #'package-name package-list) #'string<)))
+      (format stream
+             "~@[~&It uses packages named ~2I~{~:_~S~^ ~}~]"
+             (humanize (package-use-list package)))
+      (format stream
+             "~@[~&It is used by packages named ~2I~{~:_~S~^ ~}~]"
+             (humanize (package-used-by-list package))))))