;;; Inertly recovered online-help source contexts.
;;; Original System 46 file: lispm/pack4.218
;;; Exact source bytes follow each generated provenance comment.

;;; Source bytes 5093:7663; lines 118-181; sha256 d0055822c7c60c0dad897a4591e929b54aa99ff000d9d18fc7b106160dd98b48
(DEFUN DESCRIBE-PACKAGE (PKG)
    (SETQ PKG (PKG-FIND-PACKAGE PKG))
    (FORMAT T "~%Package ~A" (PKG-PROGRAM-NAME PKG))
    (OR (STRING-EQUAL (PKG-NAME PKG) (PKG-PROGRAM-NAME PKG))
	(FORMAT T " (~A)" (PKG-NAME PKG)))
    (DO PKG-1 (PKG-SUPER-PACKAGE PKG) (PKG-SUPER-PACKAGE PKG-1) (NULL PKG-1)
	(FORMAT T ", under ~A" (PKG-NAME PKG-1)))
    (PRINC ".  ")
    (AND (PKG-LOCKED PKG) (PRINC "Locked.  "))
    (SELECTQ (PKG-LOADED PKG)
	     ((T) (PRINC "Loaded.  "))
	     (:DEFS (PRINC "Definitions Loaded.  "))
	     (NIL (PRINC "Not loaded.  ")))
    (FORMAT T "~D symbols out of ~D.~%"
	    (PKG-NUMBER-OF-SYMBOLS PKG)
	    (PKG-MAX-NUMBER-OF-SYMBOLS PKG))
    (COND ((PKG-REFNAME-ALIST PKG)
	   (FORMAT T "Refname alist:~%")
	   (DO L (PKG-REFNAME-ALIST PKG) (CDR L) (NULL L)
	       (FORMAT T "    ~20A~S~%" (CAAR L) (CADAR L)))))
    (COND ((PKG-FILE-ALIST PKG)
	   (FORMAT T "Files:~%")
	   (DO L (PKG-FILE-ALIST PKG) (CDR L) (NULL L)
	       (FORMAT T "    ~A" (CAAR L))
	       (AND (EQ (CADAR L) ':DEFS)
		    (FORMAT T "   (DEFINITIONS)"))
	       (TERPRI))))
    (COND ((PKG-SUBPACKAGES PKG)
	   (FORMAT T "Subpackages:~%")
	   (DO L (PKG-SUBPACKAGES PKG) (CDR L) (NULL L)
	       (FORMAT T "    ~S~%" (CAR L)))))
    (COND ((PKG-ADVERTISED-SYMBOLS PKG)
	   (FORMAT T "Advertised symbols:~%")
	   (DO L (PKG-ADVERTISED-SYMBOLS PKG) (CDR L) (NULL L)
	       (FORMAT T "    ~S~%" (CAR L)))))
    (COND ((PKG-USER-PACKAGES PKG)
	   (FORMAT T "Packages which USE this one:~%")
	   (DO L (PKG-USER-PACKAGES PKG) (CDR L) (NULL L)
	       (FORMAT T "    ~S~%" (CAR L)))))
    (COND ((PKG-BRING-IN-LIST PKG)
	   (FORMAT T "External symbols referred to:~%")
	   (DO L (PKG-BRING-IN-LIST PKG) (CDR L) (NULL L)
	       (COND ((EQ (CAAR L) 'PKG-USE-PACKAGE-EV)
		      (FORMAT T "    Entries of ~A" (CADAR L)))
		     (T
		      (FORMAT T "    ~30A   " (THIRD (CAR L)))
		      (FORMAT T (SELECTQ (CAAR L)
					 (PKG-FORWARD-SYMBOL "-> ")
					 (PKG-INDIRECT-SYMBOL "IND")
					 (PKG-BORROW-SYMBOL "EQ " )))
		      (FORMAT T "  ~A" (SECOND (CAR L)))
		      (AND (FOURTH (CAR L))
			   (FORMAT T ":~A" (FOURTH (CAR L))))))
	       (TERPRI))))
    (COND ((PKG-SHADOW-LIST PKG)
	   (FORMAT T "Shadowed symbols:~%")
	   (DO L (PKG-SHADOW-LIST PKG) (CDR L) (NULL L)
	       (FORMAT T "    ~A~%" (CAR L)))))
    (COND ((EQ (PKG-EXTERNAL-LIST PKG) T)
	   (FORMAT T "Any external symbol may be redefined.~%"))
	  ((PKG-EXTERNAL-LIST PKG)
	   (FORMAT T "External symbols redefined:~%")
	   (DO L (PKG-EXTERNAL-LIST PKG) (CDR L) (NULL L)
	       (FORMAT T "    ~A~%" (CAR L))))))

