Update doc/efun/ aus Driversourcen.
Manpages der efuns aktualisiert, neue Manpages hinzugefuegt.
Change-Id: I7cc91684269ff56d1aef47d5c5e7c87f7fd531dc
diff --git a/doc/efun/previous_object b/doc/efun/previous_object
index 2b22080..bf28d5c 100644
--- a/doc/efun/previous_object
+++ b/doc/efun/previous_object
@@ -2,46 +2,44 @@
object|lwobject previous_object()
object|lwobject previous_object(int i)
-BESCHREIBUNG
- Liefert einen Pointer auf das letzte Objekt, das einen Aufruf (mittels
- call_other(), funcall() etc.) auf das aktuelle Objekt this_object()
- gemacht hat. Wenn dieses aufrufende Objekt inzwischen zerstoert wurde,
- liefert previous_object() 0.
+DESCRIPTION
+ Returns an object pointer to the object that did a call (call_other(),
+ funcall(), etc) to the current object, if any. If that object is
+ destructed, the function returns 0.
- Wird das Argument <i> angegeben, so verfolgt previous_object() den
- Aufruf <i> Stufen zurueck. Zum Beispiel liefert previous_object(1) das
- aufrufende Objekt des aufrufenden Objekts. Fuer <i> muss gelten:
- 0 <= i < call_stack_depth(). Ein Wert <i> < 0 liefert das erste
- aufrufende Object zurueck.
+ If the optional arg is given, the call_other()s are followed
+ back i times (i.e. previous_object(1) returns the caller of
+ the caller): 0 <= i < caller_stack_depth(). If <i> is less than 0, the
+ first previous object is returned.
- Es gibt einen wichtigen Spezialfall: in Funktionen, die vom Gamedriver
- auf Grund eines externen Ereignises aufgerufen wurden (zum Beispiel
- Kommandos, die mit add_action() definiert wurden), liefert
- previous_object() den Wert von this_object(), previous_object(0)
- hingegen 0.
+ There is an important special case: in functions called by
+ the gamedriver in reaction to some external event (e.g. commands
+ added by add_action), previous_object() will return this_object(),
+ but previous_object(0) will return 0.
-BEISPIELE
- int sicherheitscheck() {
- object|lwobject prev;
- if (!(prev=previous_object()));
- else if (getuid(prev) != getuid(this_object()));
- else if (geteuid(prev) != geteuid(this_object()));
- else return 1;
- return 0;
+EXAMPLES
+ int security() {
+ object|lwobject prev;
+ if (!(prev=previous_object()));
+ else if (getuid(prev) != getuid(this_object()));
+ else if (geteuid(prev) != geteuid(this_object()));
+ else return 1;
+ return 0;
}
- void sensible_funktion() {
- if (!sicherheitscheck())
+ void highly_sensible_func() {
+ if (!security())
return;
...
}
- Diese Funktion zeigt, wie man ueberpruefen kann, ob der letzte Aufruf
- einer Funktion im aktuellen Objekt sicher war, oder ob die
- Verarbeitung abgebrochen werden sollte.
+ This example shows how we can check if the last call to a
+ function of the current object is secure or if we should abort
+ execution.
-FEHLER
- Werte von <i> < 0 werden wie <i> == 0 behandelt - dies ist historisch.
+BUGS
+ Values of i < 0 are treated as if i == 0 was passed - this is
+ historic.
-SIEHE AUCH
- call_other(E), this_object(E), this_player(E), caller_stack(E),
- caller_stack_depth(E), extern_call(E)
+SEE ALSO
+ call_other(E), this_object(E), this_player(E),
+ caller_stack(E), caller_stack_depth(E), extern_call(E)