Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/sscanf b/doc/efun/sscanf
new file mode 100644
index 0000000..a616bf2
--- /dev/null
+++ b/doc/efun/sscanf
@@ -0,0 +1,115 @@
+FUNKTION:
+ int sscanf(string str,string fmt,mixed var1,mixed var2,...)
+
+ARGUMENTE:
+      str
+        - String, der nach einem Muster zu durchsuchen ist
+        - darf nicht NULL sein
+      fmt
+        - Format-String, nach dessen Muster untersucht wird
+      var1,var2,...
+        - Argumente die mit %d oder %s korrespondieren
+
+RUeCKGABEWERT:
+     Anzahl der gefundenen Argumente.
+
+BESCHREIBUNG:
+     Wertet einen String <str> unter Beruecksichtigung des Formats <fmt>
+     aus. <fmt> kann Strings beinhalten, die durch %d und %s getrennt
+     werden. Jedes %d und %s entspricht einer der Variablen <var1>, <var2>,
+     etc. in die gespeichert werden soll.
+
+     Die Operatoren im Format-String <fmt> haben eines der folgenden
+     Formate:
+
+         %[+][!|~][<size>[.<minmatch>]]<type>
+
+        <type> kann folgendes sein:
+            d: steht fuer eine Zahl
+            D: steht fuer eine Zahl
+            U:
+            s: steht fuer eine Zeichenkette
+            %: steht fuer das %-Zeichen
+            t: steht fuer Whitespaces (also Leerschlaege und Tabulatoren),
+               speichert diese aber nicht.
+
+     <size> ist die erwartete Feldgroesse, <minmatch> die verlangte
+     minimale Laenge fuer einen Treffer (Standardwerte sind 0 fuer
+     Strings und 1 fuer Nummern). Sowohl <size> als auch <minmatch> kann
+     entweder numerisch oder mit '*' angegeben werden - im zweiten Fall
+     wird die gueltige Variable in der Liste der Argumente benutzt.
+
+     Wird + angegeben, muessen die Zeichen nach dem Feld ebenfalls
+     matchen. Ist dies nicht der Fall, wird auch dieses Feld als
+     Misserfolg in der Rueckgabe betrachtet (auch wenn der Wert
+     bereits an die zugehoerige Variable zugewiesen wurde).
+
+     Wird ! angegeben, wird zwar die Suche durchgefuehrt, aber Treffer
+     werden weder gespeichert noch gezaehlt. Mit ~ als Argument wird
+     zwar die Suche durchgefuehrt und die Treffer gezaehlt, das Resultat
+     wird aber nicht gespeichert.
+
+     Wenn ein %s nicht am Ende von <fmt> steht, wird nur ein Treffer
+     registriert, wenn auch der nachfolgende String bzw. das
+     nachfolgende Format gefunden wird. Weiter unten gibt es dazu
+     ein Beispiel.
+     Bei einem %d allerdings muss dieses Verhalten mit einem '+'
+     erzwungen werden.
+
+     Der Unterschied zwischen %d und %D %U ist, dass letzteres ein
+     unmittelbar vorausgehendes %s so bald als moeglich abbricht,
+     waehrend ersteres zuerst versucht, einen moeglichst grossen Treffer
+     fuer %s zu erzielen. Trotzdem ueberspringt %D/%U keine Whitespaces,
+     dazu muss %.0t%D gesetzt werden.
+
+     Die Funktion sscanf() ist insofern ein Spezialfall, als dass
+     Argumente automatisch nach Referenz uebergeben werden.
+
+BEISPIELE:
+     string who, what;
+         if (sscanf("wirf frisbee zu rex",
+                    "wirf %s zu %s", what, who) != 2)
+             write("Usage: Wirf <what> zu <who>\n");
+         else
+             write("Du wirfst einen "+what+" zu "+who+".\n");
+
+     sscanf("ab", "%s%s", who, what)
+     ==> liefert 2, who = "", what = "ab"
+
+     sscanf("ab", "%s %s", who, what)
+     ==> liefert 0, who = 0, what = 0
+
+     sscanf("ab ", "%s %s", who, what)
+     ==> liefert 2, who = "ab", what = ""
+
+
+     // Achtung bei %d
+     sscanf("12 ","%d xyz", num1);
+     ==> liefert 1, num1 = 12
+
+     sscanf("12 ","%s xyz", num1);
+     ==> liefert 0, num1 = 0
+
+     // mit '+' wird das Parsen des Restformats erzwungen:
+     sscanf("12 ","%+d xyz", num1);
+     ==> liefert 0, num1 = 12
+
+
+     // Weiteres Beispiel zu %d:
+     sscanf("get 12 coins","get %d rubys",num)
+     ==> ergibt 1, weil 'rubys' ignoriert wird
+
+     // Beispiel Format-Ignore 2
+     sscanf("get 12 coins","get %+d rubys",num);
+     ==> ergibt 0, da mit dem '+' das Parsen des Restformats erzwungen wird
+     ==> ergibt 1 bei 'get 12 rubys'
+
+     // Beispiel Format-Ignore 3 [alte Variante]
+     sscanf("get 12 coins","get %d rubys%s", num, dummy)
+     ==> ergibt 1
+     ==> ergibt 2 bei "get 12 rubys"
+
+SIEHE AUCH:
+        explode(E), regexp(E)
+
+8.Aug 2007 Gloinson