Update von efun-Manpages aus Driversourcen.
Aktualisiert manpages, welche wenig oder nicht vom
MG modifizier wurden.
Change-Id: If70b4fc27cfd38cb9e98cb48328a48731969a76f
diff --git a/doc/efun/call_other b/doc/efun/call_other
index b487f4d..ee6ebdd 100644
--- a/doc/efun/call_other
+++ b/doc/efun/call_other
@@ -1,10 +1,10 @@
SYNOPSIS
- unknown call_other(object ob, string fun, mixed arg, ...);
- unknown call_other(object *ob, string fun, mixed arg, ...);
+ unknown call_other(object ob, string fun, mixed arg, ...)
+ unknown call_other(object *ob, string fun, mixed arg, ...)
- ob->fun(mixed arg, ...);
- ob->"fun"(mixed arg, ...);
- ob->(fun)(mixed arg, ...);
+ ob->fun(mixed arg, ...)
+ ob->"fun"(mixed arg, ...)
+ ob->(fun)(mixed arg, ...)
BESCHREIBUNG
Ruft die in einem anderen Objekt <ob> die Funktion <fun> mit den
@@ -12,16 +12,14 @@
Funktion <fun> geliefert wird (oder 0 fuer nicht existierende oder
als void deklarierte Funktionen).
- Optional kann der Driver so konfigueriert werden, dass auch ein Array
- von Objekten *<ob> akzeptiert wird. Die Funktion <fun> wird dann fuer
- jedes Objekt <ob> im Array mit den Argumenten <arg...> aufgerufen.
+ Weiterhin wird auch ein Array von Objekten *<ob> akzeptiert. Die
+ Funktion <fun> wird dann fuer jedes Objekt <ob> im Array mit den
+ Argumenten <arg...> aufgerufen.
Die einzelnen Resultate werden in einem Array zusammen gefasst und
dieses Array dann als Endresultat von call_other() zurueck gegeben.
Die Elemente von *<ob> koennen Objekte oder Namen von Objekten sein.
Zerstoerte Objekte und 0 als Element geben eine 0 zurueck, fuehren
aber nicht zu einem Fehler.
- call_other() auf Arrays von Objekten ist im MG aktiviert, welches
- durch das Define __LPC_ARRAY_CALLS__ angezeigt wird.
Das Objekt (bzw. die Objekte) kann direkt oder ueber einen String
(d.h. den Objektnamen) angegeben werden. Wenn ein String angegeben
@@ -69,18 +67,17 @@
Benutzern auf und speichert das gesammelte Resultat in einer
Variablen:
- string * s;
+ string *s;
s = (string *)users()->short();
-
- Objekte laden (obsolet):
- Compat: call_other("/users/luser/thing", "???", 0);
+ !Compat: call_other("/users/luser/thing", "???", 0);
+ Compat: call_other("users/luser/thing", "???", 0);
Das sieht etwas merkwuerdig aus, wurde aber oft verwendet, um einfach
ein Objekt zu laden. Dazu wurde die (nicht existierende) Funktion
"???" im Objekt aufgerufen. Gluecklicherweise gibt es heute zu
- diesem Zweck die Efun load_object(), also bitte nicht mehr verwenden.
+ diesem Zweck die Efun load_object().
-AENDERUNGEN
+GESCHICHTE
In LDMud 3.2.8 wurden die folgenden Verbesserungen eingefuehrt:
- die Formen x->"y"() und x->(y)() werden erkannt;
- die Form x->y() kollidiert nicht mehr mit einer lokalen Variablen,
@@ -88,7 +85,10 @@
- eine simul_efun call_other() erwischt auch Aufrufe der Form ->().
- call_other kann auch auf Arrays von Objekten angewandt werden.
LDMud 3.2.10 machte den Aufruf von Objektarrays konfigurierbar.
+ LDMud 3.3.113 fuehrte den Hook H_DEFAULT_METHOD ein.
+ LDMud 3.5.0 machte den Aufruf von Objektarrays nicht mehr optional.
SIEHE AUCH
- function_exists(E), call_resolved(E), create(A), pragma(LPC),
- extern_call(E), functions(LPC)
+ call_direct(E), call_direct_resolved(E), call_resolved(E), create(A),
+ pragma(LPC), extern_call(E), function_exists(E), functions(LPC),
+ map_objects(E)