Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/catch b/doc/efun/catch
new file mode 100644
index 0000000..c436b7d
--- /dev/null
+++ b/doc/efun/catch
@@ -0,0 +1,64 @@
+SYNOPSIS
+ mixed catch(expr, expr, ...);
+ mixed catch(expr, expr, ...; modifiers);
+
+BESCHREIBUNG
+ Wertet die Ausdruecke <expr> aus. Wenn kein Fehler auftritt, wird 0
+ zurueck geliefert. Wenn ein Fehler auftritt, wird die Ausfuehrung an
+ diesem Punkt abgebrochen und ein String mit der Fehlermeldung wird
+ zurueck gegeben.
+
+ Systemeigene Fehlermeldungen beginnen mit einem "*", benutzerdefinierte
+ Fehlermeldungen aus throw() und raise_error() (sofern von 0
+ verschieden), werden unveraendert zurueck geliefert.
+
+ Wenn zum Zeitpunkt, zu dem catch() aufgerufen wird, weniger als
+ __CATCH_EVAL_COST__ Rechenticks uebrig sind, wird ein Laufzeitfehler
+ RTE innerhalb von catch() erzeugt (und somit wie jeder andere
+ Fehler abgefangen) und es werden keine Ausdruecke <expr> aus catch()
+ ausgewertet. Der Modifikator 'reserve' kann verwendet werden,
+ einen anderen Wert fuer die Reserve anzugeben.
+
+ Das Verhalten von catch() kann durch <modifiers> veraendert werden:
+
+ 'nolog': Normalerweise wird der Fehler im Fehlerlog
+ gespeichert, um die Fehlersuche zu erleichtern. Wird
+ 'nolog' gesetzt, wird dieser Log-Eintrag unterdrueckt.
+ 'publish': Normalerweise wird master::runtime_error() fuer einen
+ Fehler innerhalb eines catch() nicht aufgerufen. Mit
+ diesem <modifier> wird runtime_error() trotzdem
+ aufgerufen.
+ 'reserve <expr>': <expr> muss eine ganzen Zahl groesser 0
+ ergeben, welche dann als Rechenreserve anstelle
+ von __CATCH_EVAL_COST__ verwendet wird. Das Minimum
+ ist 2 * __MASTER_EVAL_COST__ .
+
+ catch() an sich ist nicht besonders laufzeit-intensiv: es braucht
+ nur etwas mehr Zeit als ein Intra-Objekt Funktionsaufruf.
+
+ throw() ist ebenfalls nicht sehr teuer, da lediglich einige
+ interne Strukturen aufgeraeumt werden muessen.
+
+ Echte Laufzeitfehlers (ob nun mit oder ohne catch()) auf
+ der anderen Seite ist sehr zeitintensiv.
+
+ catch ist nicht im eigentlichen Sinne eine Efun, sondern eine Compiler
+ Anweisung.
+
+BEISPIEL
+ object obj;
+ string err;
+ if(err = catch(obj = clone_object("/foo/bar/baz")))
+ write("Kann das Objekt nicht clonen. Grund: "+err+"\n");
+
+AENDERUNGEN
+ LDMud 3.2.9 fuehrte den 'nolog' catch() als experimentelles Feature
+ ein.
+ LDMud 3.2.10 implementierte 'nolog' als offizielle Form und fuehrte
+ zudem 'publish' ein.
+ LDMud 3.3.559 verlegte den Test auf verbleibende Rechenticks in die
+ vom catch() umschlossenen Ausfuehrung.
+ LDMud 3.3.560 fuegte den Modifikator 'reserve' ein.
+
+SIEHE AUCH
+ throw(E), raise_error(E), predefined(D), runtime_error(M)