SYNOPSIS #include string * include_list() string * include_list(object|lwobject ob) string * include_list(object|lwobject ob, int flags) BESCHREIBUNG Diese Funktion liefert Informationen ueber alle Dateien, die bei der Kompilierung von in dieses Objekt eingebunden wurden, inklusive den Programmnamen von . Wird nicht angegeben, wird standardmaessig das aktuelle Objekt verwendet. Im resultierenden Array besteht die Information zu einem Includefile aus drei Elementen: - string [i+0]: der Name des Includefiles, wie er im Programm auftaucht, inklusive den Trennzeichen wie " " oder < >. - string [i+1]: der absolute Dateipfad des Includefiles. - int [i+2]: die Tiefe der Inklusion (gewoehnlich 1, fuer verschachtelte Includes auch groesser als 1) Der erste Eintrag im Resultat ist der Name des Programmes selbst in [i+0], die anderen beiden Elemente [i+1] und [i+2] sind 0. bezeichnet die Struktur des Ergebnisses: - = INCLIST_FLAT (0, Standard): Das Resultat ist ein flaches Array. Der erste Eintrag bezeichnet selbst, die restlichen Eintraege bezeichnen alle Includefiles in der Reihenfolge, in der sie auftreten. - = INCLIST_TREE (1): Das Resultat ist ein Array, dessen erster Eintrag das Objekt selbst bezeichnet. Alle folgenden Eintraege bezeichnen die Includefiles von . Wenn ein Includefile von selbst keine Includefiles hat, wird seine Information direkt im Array gespeichert. Fuer verschachtelte Includefiles wird ein Untervektor erzeugt und dann in diesem Untervektor abgespeichert (wiederum in [i+0], [i+1] und [i+2] sind 0). Diese Untervektoren haben die gleiche Struktur wie das Resultatarray. Wenn ein Objekt inklusive einem replace_program() unterworfen war, spiegeln die gelieferten Dateinamen das effektiv aktive Programm wider. Die Includepfade, die geliefert werden, beginnen immer mit '/' (absolute Pfade), auch wenn der Treiber im COMPAT Modus laeuft. Trotzdem beginnt der tatsaechliche Dateiname nicht mit einem '/', wenn der Treiber im COMPAT Modus laeuft. BEISPIELE Dieser Code erzeugt (mit /sys als Includeverzeichnis des Systems): a.c: #include "b.h" #include b.h: #include "d.h" c.h: #define BAR d.h: #define FOO Die Efun liefert drei Resultate: 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 }) GESCHICHTE Eingefuehrt in LDMud 3.2.9, 3.3.128. SIEHE AUCH debug_info(E), inherit_list(E)