This file implements the "ALL" file package type, which causes the definitions of various types for a given word to be put together in a file. This is nice for people who look at listings and would like to see the documentation next to the function definition, or would like the MACROS listed in with the FNS. ALL [FILEPKGCOM, FILEPKGTYPE] An ALL filepackage command looks something like this: (ALL (COMMENTS FNS MACROS VARS) (FOO1 FNS VARS) (FOO2 VARS) (FOO3 MACROS)). The second element is a list of the types that may be stored in the list, and the remaining elements are lists where the first word is the atom to be dumped and the others are the types. The form (ALL * FOOALL) is also recognized, where the value of FOOALL has the same format except that the ALL is removed. The file package command above dumps the function definition of FOO1, then the value of FOO1, then the value of FOO2 and finally the macro definition of FOO3. As a special case, some of the types may be lists of the form (PROPS p1 p2 ...) which means to put those properties in the file. When you say to store the definition of type T1 for the atom A1 on a file, the file package looks for a command in which to put it. When an ALL command is encountered, the following algorithm is used: If T1 is not in the type list then the definition will not be part of this command. If A1 is already in this command, then T1 will be inserted. The insertion attempts to maintain the order of types (and properties) in the type list. (Of course this can be subverted by the user who edits the list.) If the user specified Near: to the file package, then (A1 T1) will be inserted after the atom specified. (Of course, if that atom was not already in the ALL command, the insertion fails.) Otherwise, the list (A1 T1) is inserted in the list alphabetically. If the file package can not put the definition into one of the commands that is already in the file, it creates a new command. If T1 is one of the types in the list ALL-TYPES, then instead of creating a command like (T1 A1), the file package will create the command (ALL (A1 T1)). ALL-TYPES [VALUE] is the list of types that will be intercepted by the "ALL" package (see ALL), and is also the list of types inserted into newly created ALL filepkgcoms. Its initial value is (COMMENTS FNS MACROS VARS LISPXMACROS USERMACROS), but of course that can be set by the user. Donc (Don Cohen) @ ISIF