MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | SYNOPSIS |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 2 | #include <include_list.h> |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 3 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 4 | string * include_list() |
Zesstra | 5481d49 | 2021-04-08 20:07:06 +0200 | [diff] [blame^] | 5 | string * include_list(object|lwobject ob) |
| 6 | string * include_list(object|lwobject ob, int flags) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 7 | |
| 8 | BESCHREIBUNG |
| 9 | Diese Funktion liefert Informationen ueber alle Dateien, die bei der |
| 10 | Kompilierung von <ob> in dieses Objekt eingebunden wurden, inklusive |
| 11 | den Programmnamen von <ob>. Wird <ob> nicht angegeben, wird |
| 12 | standardmaessig das aktuelle Objekt verwendet. |
| 13 | |
| 14 | Im resultierenden Array besteht die Information zu einem Includefile |
| 15 | aus drei Elementen: |
| 16 | - string [i+0]: der Name des Includefiles, wie er im Programm |
| 17 | auftaucht, inklusive den Trennzeichen wie " " oder |
| 18 | < >. |
| 19 | - string [i+1]: der absolute Dateipfad des Includefiles. |
| 20 | - int [i+2]: die Tiefe der Inklusion (gewoehnlich 1, fuer |
| 21 | verschachtelte Includes auch groesser als 1) |
| 22 | |
| 23 | Der erste Eintrag im Resultat ist der Name des Programmes selbst in |
| 24 | [i+0], die anderen beiden Elemente [i+1] und [i+2] sind 0. |
| 25 | |
| 26 | <flag> bezeichnet die Struktur des Ergebnisses: |
| 27 | - <flag> = INCLIST_FLAT (0, Standard): |
| 28 | Das Resultat ist ein flaches Array. Der erste Eintrag bezeichnet |
| 29 | <ob> selbst, die restlichen Eintraege bezeichnen alle Includefiles |
| 30 | in der Reihenfolge, in der sie auftreten. |
| 31 | - <flag> = INCLIST_TREE (1): |
| 32 | Das Resultat ist ein Array, dessen erster Eintrag das Objekt <ob> |
| 33 | selbst bezeichnet. Alle folgenden Eintraege bezeichnen die |
| 34 | Includefiles von <ob>. Wenn ein Includefile von <ob> selbst keine |
| 35 | Includefiles hat, wird seine Information direkt im Array |
| 36 | gespeichert. Fuer verschachtelte Includefiles wird ein Untervektor |
| 37 | erzeugt und dann in diesem Untervektor abgespeichert (wiederum |
| 38 | in [i+0], [i+1] und [i+2] sind 0). Diese Untervektoren haben |
| 39 | die gleiche Struktur wie das Resultatarray. |
| 40 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 41 | Wenn ein Objekt inklusive <ob> einem replace_program() unterworfen |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 42 | war, spiegeln die gelieferten Dateinamen das effektiv aktive Programm |
| 43 | wider. |
| 44 | |
| 45 | Die Includepfade, die geliefert werden, beginnen immer mit '/' |
| 46 | (absolute Pfade), auch wenn der Treiber im COMPAT Modus laeuft. |
| 47 | Trotzdem beginnt der tatsaechliche Dateiname nicht mit einem '/', |
| 48 | wenn der Treiber im COMPAT Modus laeuft. |
| 49 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 50 | |
| 51 | BEISPIELE |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 52 | Dieser Code erzeugt (mit /sys als Includeverzeichnis des Systems): |
| 53 | |
| 54 | a.c: #include "b.h" |
| 55 | #include <c.h> |
| 56 | b.h: #include "d.h" |
| 57 | c.h: #define BAR |
| 58 | d.h: #define FOO |
| 59 | |
| 60 | Die Efun liefert drei Resultate: |
| 61 | |
| 62 | include_list(a, INCLIST_FLAT) |
| 63 | -> ({ "a.c", 0, 0 |
| 64 | , "\"b.h\"", "/.../b.h", 1 |
| 65 | , "\"d.h\"", "/.../d.h", 2 |
| 66 | , "<c.h>", "/sys/c.h", 1 |
| 67 | }) |
| 68 | |
| 69 | include_list(a, INCLIST_TREE) |
| 70 | -> ({ "a.c", 0, 0 |
| 71 | , ({ "\"b.h\"", "/.../b.h", 1 |
| 72 | , "\"d.h\"", "/.../d.h", 2 |
| 73 | }), 0, 0 |
| 74 | , "<c.h>", "/sys/c.h", 1 |
| 75 | }) |
| 76 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 77 | GESCHICHTE |
| 78 | Eingefuehrt in LDMud 3.2.9, 3.3.128. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 79 | |
| 80 | SIEHE AUCH |
| 81 | debug_info(E), inherit_list(E) |