Update doc/efun/ aus Driversourcen.

Manpages der efuns aktualisiert, neue Manpages hinzugefuegt.

Change-Id: I7cc91684269ff56d1aef47d5c5e7c87f7fd531dc
diff --git a/doc/efun/present b/doc/efun/present
index 2a9d0be..7c9592a 100644
--- a/doc/efun/present
+++ b/doc/efun/present
@@ -7,71 +7,64 @@
         object present(object ob)
         object present(object ob, object env)
 
-BESCHREIBUNG
-        Wenn ein Objekt mit der Id <str> sich im Inventar oder in der Umgebung
-        von this_object() befindet, wird es zurueck geliefert.
+DESCRIPTION
+        This efun checks if an object is present in a given environment.
+        The object is identified by id <str> or by an object <ob>. This
+        latter form of the efun can be used as a fast way to test for the
+        presence of a known object.
+
+        When searching objects by id, the efun by default returns the first
+        object found matching the id. In order to search for other than the
+        first object, a number can be specified either directly as the
+        argument <n>, or implicetely inside the <str> in the form "<id>
+        <n>".
         
-        Ist das Argument <n> gegeben, wird das n-te Objekt mit Namen <id>
-        zurueck geliefert. Das heisst, der Driver fuehrt fuer alle Objekte
-        im Inventar und in der Umgebung von this_object() die Funktion
-        id(str) aus, bis ein Treffer erzielt wird (wenn ueberhaupt).
+        By default, the efun searches first in the inventory of
+        this_object(), then in its environment. However, if <env> is given,
+        the efun searches just inside <env>.
 
-        Ist <n> nicht gegeben, aber <str> hat die Form "<id> <n>" , wird
-        ebenfalls das n-te Objekt mit Namen <id> zurueckgeliefert.
+        When searching both inventory and environment of this_object(),
+        the numbering is applied linear over both spaces (see examples).
 
-        <str> kann auch ein Objekt (anstatt einer Id) sein, was den Test
-        schneller und einfacher macht.
+        The driver identifies objects by calling the lfun id() in each
+        object.
 
-        Das Argument <env> ist optional. <env> gibt das Objekt an, in welchem
-        nach <str> gesucht wird. Nur das Inventory von <env> wird durchsucht,
-        nicht jedoch dessen Umgebung.
-
-ANMERKUNGEN
-        Wenn die efun sowohl in this_object() als auch dessen Umgebung
-        sucht, werden, soweit es die Numerierung betrifft, die beiden
-        Umgebungen zusammenhaengend betrachtet.
-
-BEISPIELE
+EXAMPLES
         present("chest");
-          --> findet das erste 'chest' Objekt
+          --> returns the first 'chest' object in this object.
 
-        present("chest 2");
-          --> findet das zweite 'chest' Objekt
+        present("chest 2")
+          --> returns the second 'chest' object in this object.
 
-        present("chest 2", 1);
-          --> findet das erste 'chest 2' Objekt
+        present("chest 2", 1)
+          --> returns the first 'chest 2' object in this object.
 
-        Wenn sich eine "chest" im this_object() befindet, und zwei
-        ausserhalb:
-          present("chest", 1) -> findet die chest im Objekt
-          present("chest", 2) -> findet die erste chest ausserhalb
-          present("chest", 3) -> findet die zweite chest ausserhalb
+        Assume there is one "chest" inside the current object, and
+        two in its environment:
+          present("chest", 1) -> returns the chest inside
+          present("chest", 2) -> returns the first chest outside
+          present("chest", 3) -> returns the second chest outside
         
-        Wenn ein Objekt die Forum "<id> <n>" in Verbindung mit einem selbst
-        ueber add_action() gesetzten Verb unterstuetzen soll (damit z. B.
-        "oeffne Kiste 3" funktioniert), kann das folgendermassen geloest
-        werden:
+        A typical 2.4.5-implementation of the "do <id> <n>" command style
+        is:
 
-            void init() { add_action("oeffne_kiste", "oeffne"); }
+            void init() { add_action("open_chest", "open"); }
 
-            int oeffne_kiste(string str)
-            {
-                if(present(str) != this_object() )
-                {
-                    return 0; /* nicht diese Kiste */
-                    ...
-                }
+            int open_chest (string str) {
+              if (present (str) != this_object ())
+                  return 0; /* Not this chest */
+              ...
             }
 
-GESCHICHTE
-        LDMud 3.2.11/3.3.610 fuehrte die (str, n)-Form ein.
-        LDMud 3.3.713 aenderte die Numerierung wenn sowohl Inventory
-          als auch Umgebung durchsucht werden. In der vorherigen
-          Implementierung wurde eine Numerierung auf beiden Umgebungen
-          einzeln angewandt, was zur Folge hatte, dass niedere Objekte
-          in der aeusseren Umgebung nicht gefunden werden koennten, da
-          sie von den Objekten in Inneren verdeckt wurden.
 
-SIEHE AUCH
-        move_object(E), environment(E), this_object(E), present_clone(E),
+HISTORY
+        LDMud 3.2.11/3.3.610 introduced the (str, n) argument form.
+        LDMud 3.3.713 modified the <n> search behaviour so that the
+          numbering is applied over both inventory and environment
+          together. Before, the numbering was individual in each
+          space, leading to situations where low-numbered objects in the
+          environment were hidden by those in the inventory.
+
+SEE ALSO
+        move_object(E), environment(E), this_object(E), present_clone(E)
         id(A), init(A)