autoinclude.c-Dateireferenz

Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

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

Makro-Dokumentation

#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.


Dokumentation der Funktionen

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(&region, 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 }


Variablen-Dokumentation

private mapping autoincludes
Initialisierung:
 ([
    "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().

Erzeugt am Thu Jun 3 14:41:29 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3