Aus Driversourcen kopiert

Change-Id: I288bc25d995b1e20e5894f1c5ab4e71055be9324
diff --git a/doc/efun/process_string b/doc/efun/process_string
new file mode 100644
index 0000000..8f43053
--- /dev/null
+++ b/doc/efun/process_string
@@ -0,0 +1,43 @@
+OPTIONAL
+SYNOPSIS
+        string process_string(string str)
+
+BESCHREIBUNG
+        Durchsucht den String <str> nach "value by function call", das
+        heisst nach @@, gefolgt von einem impliziten Funktionsaufruf. Siehe
+        auch "value_by_function_call" im Prinzipien-Teil der Enzy.
+
+        Der Wert sollte eine String in dieser Form enthalten:
+        @@function[:filename][|arg|arg]@@
+
+        <function> muss einen String zurueckliefern, sonst wird der zu
+        verarbeitende String unveraendert zurueck geliefert.
+
+        process_string() fuehrt keine Rekursion ueber zurueck gelieferte
+        Werte durch: wenn eine Funktion wiederum eine implizite Funktion
+        zurueckliefert, wird diese zweite Funktion nicht mehr verarbeitet.
+
+        Sowohl <filename> wie auch die Argumente <arg> sind optional.
+
+BEISPIELE
+        string foo(string str) {
+            return "ab"+str+"ef";
+        }
+
+        void func() {
+            write(process_string("@@foo|cd@@"+"\n");
+        }
+
+        func() gibt jetzt an den Benutzer den String "abcdef" aus.
+
+FEHLER
+        Die Verwendung von process_string() kann massive Sicherheitsprobleme
+        verursachen.
+
+GESCHICHTE
+        Wegen der Sicherheitsprobleme ist process_string() seit 3.2.1@34
+        optional.
+
+SIEHE AUCH
+        notify_fail(E), closures(LPC), get_bb_uid(M)
+