Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/allocate b/doc/efun/allocate
new file mode 100644
index 0000000..c591c5e
--- /dev/null
+++ b/doc/efun/allocate
@@ -0,0 +1,38 @@
+SYNOPSIS
+        *mixed allocate(int size);
+        *mixed allocate(int size, mixed init_value);
+
+        *mixed allocate(*int sizes);
+        *mixed allocate(*int sizes, mixed init_value);
+
+BESCHREIBUNG
+        Alloziert ein Array von <size> Elementen. Die Anzahl Elemente muss
+        groesser sein als 0, darf aber das Systemmaximum (normalerweise 1000)
+        nicht uebersteigen. Wird <init_value> angegeben, wird allen Elementen
+        dieser als Anfangswert zugewiesen. Wenn <init_value> ein Mapping oder
+        ein Array ist, wird fuer jedes Element eine einfache Kopie erstellt.
+        Wird <init_value> nicht angegeben, sind alle Elemente 0.
+
+        In der zweiten Form (mit einem Feld von <sizes> anstelle nur einer
+        <size>) erzeugt allocate() ein mehrdimensionales Array, ein Array aus
+        Arrays.
+
+        Heute wird allocate() kaum mehr benoetigt, weil Arrays mit dem
+        +-Operator addiert werden koennen und mit dem ({})-Operator
+        initialisiert. Der einzige Nutzen der Funktion ist, grosse leere
+        oder initialisierte Arrays zu erzeugen.
+
+BEISPIEL
+        string *buffer;
+        buffer = allocate(50);
+        buffer = allocate(50, "");
+
+        buffer = allocate( ({ 2, 3 }) )
+          --> ({ ({ 0, 0, 0 }), ({ 0, 0, 0 }) })
+
+AENDERUNGEN
+        LDMud 3.2.9 fuehrte den Anfangswert <init_value> und die
+            Initialisierung von mehrdimensionalen Arrays ein.
+
+SIEHE AUCH
+        sizeof(E)