SYNOPSIS¶
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 ob
, including ob
program’s own filename. If ob
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 flags
determines the exact structure of the result:
flags
=INCLIST_FLAT
(0, default):- The result is a flat array of the entries, starting the with the entry for
ob
itself, followed by the entries for all included files in the order they were encountered. flags
=INCLIST_TREE
(1):- The result is an array starting the with the entry of
ob
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 ob
, had been undergone a replace_program
(E), 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__
mode. The filename of the object itself however does not begin with a ‘/’ in __COMPAT_MODE__
mode.
USAGE¶
Given this source code (and /sys as system include directory):
the efun will give these results:
include_list(a, INCLIST_FLAT)
/* returns:
({ "a.c", 0, 0
, "\"b.h\"", "/.../b.h", 1
, "\"d.h\"", "/.../d.h", 2
, "<c.h>", "/sys/c.h", 1
})
*/
include_list(a, INCLIST_TREE)
/* returns:
({ "a.c", 0, 0
, ({ "\"b.h\"", "/.../b.h", 1
, "\"d.h\"", "/.../d.h", 2
}), 0, 0
, "<c.h>", "/sys/c.h", 1
})
*/
HISTORY¶
- introduced (3.2.9/3.3.128)