
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | PRAGMA(x) "#pragma "x"\n" |
| #define | RTTCHECKS "" |
| #define | DEFAULTS PRAGMA("combine_strings, verbose_errors, warn_deprecated") |
Funktionen | |
| string | autoincludehook (string base_file, string current_file, int sys_include) |
Variablen | |
| private mapping | autoincludes |
| #define DEFAULTS PRAGMA("combine_strings, verbose_errors, warn_deprecated") |
Definiert in Zeile 16 der Datei autoinclude.c.
| #define PRAGMA | ( | x | ) | "#pragma "x"\n" |
Definiert in Zeile 8 der Datei autoinclude.c.
| #define RTTCHECKS "" |
Definiert in Zeile 15 der Datei autoinclude.c.
| string autoincludehook | ( | string | base_file, | |
| string | current_file, | |||
| int | sys_include | |||
| ) |
Definiert in Zeile 49 der Datei autoinclude.c.
Benutzt autoincludes.
00050 { 00051 mapping topleveldir, region; // mappings for spezialisiertere Pfade 00052 string ainc_string; 00053 00054 // Wenn current_file != 0 ist, wird gerade vom kompilierten Objekt 00055 // <base_file> etwas (indirekt) inkludiert. Dort duerfen die Pragmas 00056 // keinesfalls reingeschrieben werden. 00057 if (current_file) 00058 return 0; 00059 00060 string res=autoincludes[0]; // global default. 00061 00062 string *p_arr = explode(base_file,"/")-({""}); 00063 //DEBUG(sprintf("AINC: File: %O, Pfad: %O\n",base_file, p_arr)); 00064 00065 if (sizeof(p_arr) && m_contains(&topleveldir, autoincludes, p_arr[0])) { 00066 // p_arr[0]: d, p, std, etc. 00067 // erst wird der Defaulteintrag 0 genommen 00068 res += topleveldir[0]; 00069 if (sizeof(p_arr) > 1 && m_contains(®ion, topleveldir, p_arr[1])) { 00070 // p_arr[1] ebene, polar, unterwelt, service, ... 00071 // erst den Defaulteintrag der Region nehmen 00072 res += region[0]; 00073 if (sizeof(p_arr) > 2 && m_contains(&ainc_string, region, p_arr[2])) { 00074 // p_arr[2]: magiername. Fuer den Magier was hinterlegt. 00075 res += ainc_string; 00076 } 00077 } 00078 } 00079 // Fuer aeltere Files schalten wir einige Warnungen explizit aus. :-( 00080 // (1258662508 == "Don, 19. Nov 2009, 21:28:28") 00081 #if MUDHOST == __HOST_NAME__ 00082 if (funcall(symbol_function('file_time), base_file) < 1258662508) { 00083 res += PRAGMA("no_warn_empty_casts, no_warn_missing_return, no_warn_function_inconsistent"); 00084 } 00085 #else 00086 // Auf anderen Rechnern als dem Mudrechner werden die Warnungen unabhaengig 00087 // vom Zeitpunt der letztes Aenderung abgeschaltet, weil bei kopierten 00088 // Mudlibs oft die mtimes geaendert werden und dann auf einmal alles scrollt. 00089 res += PRAGMA("no_warn_empty_casts, no_warn_missing_return, no_warn_function_inconsistent"); 00090 00091 #endif 00092 //DEBUG(res); 00093 return res; 00094 }
| private mapping autoincludes |
([
"d": ([
"inseln": ([
0: "",
"zesstra": PRAGMA("strong_types,save_types") RTTCHECKS,
]),
0: "",
]),
"std": ([
0: PRAGMA("strong_types,save_types") RTTCHECKS,
]),
"secure": ([
0: PRAGMA("strong_types,save_types") RTTCHECKS,
]),
"p": ([
0: "",
"daemon": ([
0: PRAGMA("strong_types,save_types") RTTCHECKS
]),
"service": ([
0: PRAGMA("save_types")
]),
]),
0: DEFAULTS,
])
Definiert in Zeile 23 der Datei autoinclude.c.
Wird benutzt von autoincludehook().
1.6.3