SYNOPSIS #include string *include_list () string *include_list (object ob) string *include_list (object ob, int flags) DESCRIPTION Return information about all files included into the compilation of , including program's own filename. If is omitted, it defaults to the current object. In the resulting array(s), the information for one include file takes up three elements: string [i+0]: the name as it appeared in the program, including the delimiters ("" or <>, resp.). string [i+1]: the absolute filename of the include file. int [i+2]: the inclusion depth (usually 1, more for nested includes). The first entry in the result is the program's own name in [i+0], the other two elements [i+1] and [i+2] are 0. The determines the exact structure of the result: = INCLIST_FLAT (0, default): The result is a flat array of the entries, starting the with the entry for itself, followed by the entries for all included files in the order they were encountered. = INCLIST_TREE (1): The result is an array starting the with the entry of itself, followed by the entries for all directly included files. If one of the included files has no nested includes by itself, then its information will be stored directly in the array. If one included file has includes by itself, a subvector will be created and stored in the result vector (again in [i+0], with [i+1] and [i+2] being 0). These subvectors have the same structure as the main result vector. If objects, including , had been undergone a replace_program(), the returned filenames will reflect the actual active program. The returned proper include filenames always begin with '/' (absolute path), even when the parser runs in COMPAT mode. The filename of the object itself however does not begin with a '/' in COMPAT mode. EXAMPLES Given this source code (and /sys as system include directory): a.c: #include "b.h" #include b.h: #include "d.h" c.h: #define BAR d.h: #define FOO the efun will give these results: include_list(a, INCLIST_FLAT) -> ({ "a.c", 0, 0 , "\"b.h\"", "/.../b.h", 1 , "\"d.h\"", "/.../d.h", 2 , "", "/sys/c.h", 1 }) include_list(a, INCLIST_TREE) -> ({ "a.c", 0, 0 , ({ "\"b.h\"", "/.../b.h", 1 , "\"d.h\"", "/.../d.h", 2 }), 0, 0 , "", "/sys/c.h", 1 }) HISTORY Implemented in LDMud 3.2.9/3.3.128. SEE ALSO debug_info(E), inherit_list(E)