Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/secure/master/autoinclude.c b/secure/master/autoinclude.c
new file mode 100644
index 0000000..e0002fa
--- /dev/null
+++ b/secure/master/autoinclude.c
@@ -0,0 +1,101 @@
+// MorgenGrauen MUDlib
+//
+// secure/master/autoinclude.c -- module of the master object: Autoincludes
+//
+// $Id: master.c 7041 2008-10-13 18:18:27Z Zesstra $
+
+#define PRAGMA(x) "#pragma "x"\n"
+
+// fuer alte Homemuds...
+#if __VERSION__ >= "3.5.0"
+#define RTTCHECKS PRAGMA("rtt_checks")
+#define DEFAULTS PRAGMA("save_types")
+#else
+#define RTTCHECKS ""
+#define DEFAULTS PRAGMA("combine_strings, verbose_errors, warn_deprecated")
+#endif
+
+// geschachteltes Mapping in toplevel.region.magier Hierarchie.
+// Wichtig: jede Hierarchiebene _muss_ ein Mapping sein, welches einen Eintrag
+// 0 als Default enthaelt, welcher einen Strings als Wert hat.
+// Ausnahme: die letzte Ebene (Magierebene), die muss ein String ein.
+private nosave mapping autoincludes = ([
+ "d": ([
+ "inseln": ([
+ 0: "",
+ "zesstra": PRAGMA("strong_types") RTTCHECKS,
+ ]),
+ 0: "",
+ ]),
+ "std": ([
+ 0: PRAGMA("strong_types,pedantic") RTTCHECKS,
+ ]),
+ "items": ([
+ 0: PRAGMA("strong_types,pedantic") RTTCHECKS,
+ ]),
+ "secure": ([
+ 0: PRAGMA("strong_types,range_check,pedantic") RTTCHECKS,
+ ]),
+ "p": ([
+ 0: "",
+ "daemon": ([
+ 0: PRAGMA("strong_types") RTTCHECKS
+ ]),
+ "service": ([
+ 0: ""
+ ]),
+ ]),
+ 0: DEFAULTS,
+]);
+
+string autoincludehook(string base_file, string current_file, int sys_include)
+{
+ mapping topleveldir, region; // mappings for spezialisiertere Pfade
+ string ainc_string;
+
+ // Wenn current_file != 0 ist, wird gerade vom kompilierten Objekt
+ // <base_file> etwas (indirekt) inkludiert. Dort duerfen die Pragmas
+ // keinesfalls reingeschrieben werden.
+ if (current_file)
+ return 0;
+
+ string res=autoincludes[0]; // global default.
+
+ string *p_arr = explode(base_file,"/")-({""});
+ //DEBUG(sprintf("AINC: File: %O, Pfad: %O\n",base_file, p_arr));
+
+ if (sizeof(p_arr) && m_contains(&topleveldir, autoincludes, p_arr[0])) {
+ // p_arr[0]: d, p, std, etc.
+ // erst wird der Defaulteintrag 0 genommen
+ res += topleveldir[0];
+ if (sizeof(p_arr) > 1 && m_contains(®ion, topleveldir, p_arr[1])) {
+ // p_arr[1] ebene, polar, unterwelt, service, ...
+ // erst den Defaulteintrag der Region nehmen
+ res += region[0];
+ if (sizeof(p_arr) > 2 && m_contains(&ainc_string, region, p_arr[2])) {
+ // p_arr[2]: magiername. Fuer den Magier was hinterlegt.
+ res += ainc_string;
+ }
+ }
+ }
+ // Fuer aeltere Files schalten wir einige Warnungen explizit aus. :-(
+ // (1407179680 == "Mon, 4. Aug 2014, 21:14:40")
+#if MUDHOST == __HOST_NAME__
+ if (call_sefun("file_time", base_file) < 1407179680) {
+ res += PRAGMA("no_warn_missing_return");
+ }
+#else
+ // Auf anderen Rechnern als dem Mudrechner werden die Warnungen unabhaengig
+ // vom Zeitpunt der letztes Aenderung abgeschaltet, weil bei kopierten
+ // Mudlibs oft die mtimes geaendert werden und dann auf einmal alles scrollt.
+ res += PRAGMA("no_warn_missing_return");
+
+#endif
+ //DEBUG(res);
+ return res;
+}
+#undef RTTCHECKS
+#undef DEFAULTS
+#undef PRAGMA
+
+