Update von efun-Manpages aus Driversourcen.
Aktualisiert manpages, welche wenig oder nicht vom
MG modifizier wurden.
Change-Id: If70b4fc27cfd38cb9e98cb48328a48731969a76f
diff --git "a/doc/efun/\133\135" "b/doc/efun/\133\135"
index a59696a..afbc0fe 100644
--- "a/doc/efun/\133\135"
+++ "b/doc/efun/\133\135"
@@ -2,8 +2,8 @@
mixed arr[index];
int str[index];
- *mixed arr[from .. to];
- string str[from .. to];
+ mixed * arr[from..to];
+ string str[from..to];
BESCHREIBUNG
Liefert ein Element aus einem Array oder String (erste Form), oder
@@ -52,7 +52,7 @@
str[1..2] = "bar" -> str == "tbart"
str[1..2] = "" -> str == "tt"
-AENDERUNGEN
+GESCHICHTE
slice_array() ist die alte Form der []-Operatoren fuer Arrays,
extract() ist die alte Form der []-Operatoren fuer Strings.
BEIDE VARIANTEN SIND VERALTET, WERDEN NICHT MEHR UNTERSTUETZT UND
diff --git a/doc/efun/abs b/doc/efun/abs
index 586beea..d242124 100644
--- a/doc/efun/abs
+++ b/doc/efun/abs
@@ -1,6 +1,6 @@
SYNOPSIS
- int abs (int arg)
- float abs (float arg)
+ int abs(int arg)
+ float abs(float arg)
BESCHREIBUNG
Liefert den Betrag des Argumentes <arg>.
@@ -12,7 +12,7 @@
abs( 11 ) 11
abs( -1.974) 1.974
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.6.
SIEHE AUCH
diff --git a/doc/efun/acos b/doc/efun/acos
index 2487958..84bad82 100644
--- a/doc/efun/acos
+++ b/doc/efun/acos
@@ -2,7 +2,7 @@
float acos(float)
BESCHREIBUNG
- Liefert der Arkuskosinus des Argumentes.
+ Liefert den Arkuskosinus des Argumentes.
SIEHE AUCH
sin(E), asin(E), cos(E), tan(E), atan(E), atan2(E)
diff --git a/doc/efun/all_environment b/doc/efun/all_environment
index 993f493..3da7cb6 100644
--- a/doc/efun/all_environment
+++ b/doc/efun/all_environment
@@ -1,9 +1,6 @@
SYNOPSIS
- object *all_environment();
- object *all_environment(object ob);
-
-ARGUMENTE:
- ob - das Objekt, dessen environment()s gewuenscht werden
+ object * all_environment()
+ object * all_environment(object ob)
BESCHREIBUNG
Gibt ein Array mit allen Umgebungen des Objekts <ob> zurueck.
@@ -13,21 +10,13 @@
Wenn <o> keine Umgebung hat oder zerstoert wurde, wird 0 zurueck
gegeben.
-BEMERKUNGEN:
- Das zurueckgegebene Array ist so angelegt, dass die innerste Umgebung
- am Anfang des Arrays steht, und die aeusserste Umgebung am Ende.
+BEISPIELE
+ Wenn <ob> ein Zuendholz in einer Schachtel in einer Truhe in einem
+ Raum ist, so liefert all_environment(ob) das Array
+ ({ Schachtel, Truhe, Raum }) zurueck.
-BEISPIEL
- (Die gesuchte Fackel befindet sich in einem Behaelter, den Wargon bei
- sich traegt. Wargon steht in seinem Workroom.)
-
- ob = all_environment(find_object("/obj/fackel#32"));
- => ob = ({[+wueste/durian/behaelter#31],[/magier:wargon],[~/workroom]})
-
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.6. Ein Vorschlag von TubMud.
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.6. Ein Vorschlag von Tubmud.
SIEHE AUCH
environment(E), all_inventory(E)
-
-7.Feb 2007 Gloinson
\ No newline at end of file
diff --git a/doc/efun/allocate b/doc/efun/allocate
index c591c5e..cf74429 100644
--- a/doc/efun/allocate
+++ b/doc/efun/allocate
@@ -1,12 +1,12 @@
SYNOPSIS
- *mixed allocate(int size);
- *mixed allocate(int size, mixed init_value);
+ mixed * allocate(int size)
+ mixed * allocate(int size, mixed init_value)
- *mixed allocate(*int sizes);
- *mixed allocate(*int sizes, mixed init_value);
+ mixed * allocate(*int sizes)
+ mixed * allocate(*int sizes, mixed init_value)
BESCHREIBUNG
- Alloziert ein Array von <size> Elementen. Die Anzahl Elemente muss
+ Allokiert ein Array von <size> Elementen. Die Anzahl Elemente muss
groesser sein als 0, darf aber das Systemmaximum (normalerweise 1000)
nicht uebersteigen. Wird <init_value> angegeben, wird allen Elementen
dieser als Anfangswert zugewiesen. Wenn <init_value> ein Mapping oder
@@ -18,11 +18,11 @@
Arrays.
Heute wird allocate() kaum mehr benoetigt, weil Arrays mit dem
- +-Operator addiert werden koennen und mit dem ({})-Operator
- initialisiert. Der einzige Nutzen der Funktion ist, grosse leere
+ +-Operator addiert und mit dem ({})-Operator initialisiert werden
+ koennen. Der einzige Nutzen der Funktion ist, grosse leere
oder initialisierte Arrays zu erzeugen.
-BEISPIEL
+BEISPIELE
string *buffer;
buffer = allocate(50);
buffer = allocate(50, "");
@@ -30,7 +30,7 @@
buffer = allocate( ({ 2, 3 }) )
--> ({ ({ 0, 0, 0 }), ({ 0, 0, 0 }) })
-AENDERUNGEN
+GESCHICHTE
LDMud 3.2.9 fuehrte den Anfangswert <init_value> und die
Initialisierung von mehrdimensionalen Arrays ein.
diff --git a/doc/efun/and_bits b/doc/efun/and_bits
index f066d61..d1d89a3 100644
--- a/doc/efun/and_bits
+++ b/doc/efun/and_bits
@@ -1,5 +1,5 @@
SYNOPSIS
- string and_bits(string str1, string str2);
+ string and_bits(string str1, string str2)
BESCHREIBUNG
<str1> und <str2> seien beides Bitstrings. Das Resultat von and_bits()
@@ -7,7 +7,7 @@
heisst ein String, in dem ein Bit nur gesetzt ist, wenn das
entsprechende Bit in beiden Strings <str1> und <str2> gesetzt ist.
-BEISPIEL
+BEISPIELE
string s1, s2, s3;
s1 = set_bit("", 3); s1 = set_bit(s1, 15); -> s1 is "( ("
diff --git a/doc/efun/apply b/doc/efun/apply
index aaa30a5..d7c891e 100644
--- a/doc/efun/apply
+++ b/doc/efun/apply
@@ -1,5 +1,5 @@
SYNOPSIS
- mixed apply(closure cl, mixed arg, ...);
+ mixed apply(closure cl, mixed arg, ...)
BESCHREIBUNG
Wertet die Closure <cl> aus. Wenn <cl> keine Closure ist, wird <cl>
@@ -26,7 +26,7 @@
Eine wichtige Anwendung von apply() ist das Auswerten des
Array-Arguments in "varargs" Funktionen.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in 3.2@70.
LDMud 3.2.8 fuehrte ein, dass das erste Argument zurueck gegeben wird,
wenn es sich nicht um eine Closure handelt.
diff --git a/doc/efun/atan b/doc/efun/atan
index 105b748..f8242b5 100644
--- a/doc/efun/atan
+++ b/doc/efun/atan
@@ -4,7 +4,7 @@
BESCHREIBUNG
Liefert den Arkustangens des Argumentes.
-AENDERUNGEN
+GESCHICHTE
LDMud 3.2.9: Ganzzahlen (Integers) als Argument hinzugefuegt.
SIEHE AUCH
diff --git a/doc/efun/atan2 b/doc/efun/atan2
index e4cd78a..e1c939a 100644
--- a/doc/efun/atan2
+++ b/doc/efun/atan2
@@ -1,5 +1,5 @@
SYNOPSIS
- float atan2 (int|float y, int|float x)
+ float atan2(int|float y, int|float x)
BESCHREIBUNG
Liefert den Winkel der Polarkoordinaten des Punktes (x, y) im
@@ -9,7 +9,7 @@
Parameter-Liste, die die Abfolge in der Steigungs-Winkel-Umrechnung
atan(y / x) widerspiegelt.
-AENDERUNGEN
+GESCHICHTE
LDMud 3.2.9: Ganzzahlen (Integers) als Argumente hinzugefuegt.
SIEHE AUCH
diff --git a/doc/efun/attach_erq_demon b/doc/efun/attach_erq_demon
index 032b13b..118a1ff 100644
--- a/doc/efun/attach_erq_demon
+++ b/doc/efun/attach_erq_demon
@@ -1,37 +1,37 @@
+GESCHUETZT
SYNOPSIS
int attach_erq_demon(object ob, int do_close)
int attach_erq_demon(string obname, int do_close)
-DESCRIPTION
- This privileged efun is to set/change the connection of the
- driver to the external erq demon, thus in effect changing the
- demons.
+BESCHREIBUNG
+ Diese geschuetzte Funktion setzt oder aendert die die Verbindung des
+ Treibers zum externen Erq-Demon, aendert also effektiv die Demons.
- The connection of the given interactive 'ob'ject is taken away(!)
- from it and stored as the erq-connection. The object itself is
- then no longer needed, but may stay alive - it is just another
- non-interactive object then.
+ Die Verbindung wird dabei vom interaktiven Objekt <ob> entfernt (!)
+ und als Erq-Verbindung gespeichert. Das Objekt <ob> wird anschliessend
+ nicht mehr benoetigt, es kann aber als (nicht interaktives) Objekt
+ weiter existieren.
- In the second form, the string will be combined as suffix to
- the filename ERQFILE<obname>, which is then the binary to be
- forked off as new erq demon. The communication with this erq
- will take place over unix domain sockets. ERQFILE defaults to
- BINDIR/erq, where BINDIR is the configuration value for the
- executable directory.
+ In der zweiten Form wird der String an den Dateinamen ERQFILE<obname>
+ angehaengt, das dann als Binary als neuer Erq-Demon aufgespalten wird.
+ Die Kommunikation mit diesem Erq verlaeuft ueber Unix Domainsockets.
+ ERQFILE greift standardmaessig auf BINDIR/erq zu, wobei BINDIR der
+ konfigurierte Wert fuer das ausfuehrbare Verzeichnis ist.
- If there is alreay an erq demon connected to the driver, the
- function will fail unless 'do_close' (default 0) is specified
- as 1 (or any other odd integer): then the old connection will
- be closed before attaching the new.
- The efun returns 1 on success, else 0.
+ Besteht bereits eine Verbindung zu einem Erq-Demon, schlaegt die
+ Funktion fehl, wenn nicht do_close auf 1 gesetzt ist (Standard ist
+ do_close == 0). In diesem Fall wird die alte Verbindung geschlossen,
+ bevor zum neuen Demon verbunden wird.
-EXAMPLE
- To restart the (default) erq, write in
- master.c::stale_erq(closure c):
- attach_erq_demon("", 0);
+ Die Efun liefert 1 bei Erfolg, 0 sonst.
-HISTORY
- Introduced in 3.2.1@61.
+BEISPIELE
+ Um den (Standard-)Erq neu zu starten, muss in
+ master.c::stale_erq(closure c) geschrieben werden:
+ attach_erq_demon("", 0);
-SEE ALSO
+GESCHICHTE
+ Eingefuehrt in 3.2.1@61.
+
+SIEHE AUCH
send_erq(E), erq(C)
diff --git a/doc/efun/binary_message b/doc/efun/binary_message
index 08bc321..5b909a9 100644
--- a/doc/efun/binary_message
+++ b/doc/efun/binary_message
@@ -1,6 +1,6 @@
GESCHUETZT
SYNOPSIS
- int binary_message(int *|string messages, int flags);
+ int binary_message(int *|bytes messages, int flags)
BESCHREIBUNG
Liest den Output aus und sendet diesen direkt mit write() OHNE IAC
@@ -21,15 +21,15 @@
werden - der Rueckgabewert ist nicht definiert.
Bit 1 (Wert 2): Der Puffer wird ausgelesen, _nachdem_ die Nachricht
- angefuegt wurde. Ist nur in Verbindung mit Bit 0 sinnvoll.
+ angefuegt wurde. Macht nur in Verbindung mit Bit 0 Sinn.
- Die Idee hinter den Flags ist, dass das Senden von Kommandocodes
- zum Beispiel fuer Farben an den vorhandenen Filtern fuer erlaubte
- Zeichen vorbeigeschleust werden muss, jedoch nicht wichtig genug
- ist, um die Verschwendung von Bandbreite mittels einer
- synchronen Uebertragung zu rechtfertigen.
+ Die Idee hinter den Flags ist, dass das Senden von Kommandocodes
+ zum Beispiel fuer Farben an den vorhandenen Filtern fuer erlaubte
+ Zeichen vorbeigeschleust werden muss, jedoch nicht wichtig genug
+ ist, um die Verschwendung von Bandbreite mittels einer
+ synchronen Uebertragung zu rechtfertigen.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in 3.2.1@40.
SIEHE AUCH
diff --git a/doc/efun/bind_lambda b/doc/efun/bind_lambda
index 6075a33..ddd2ada 100644
--- a/doc/efun/bind_lambda
+++ b/doc/efun/bind_lambda
@@ -1,16 +1,18 @@
SYNOPSIS
- closure bind_lambda(closure, object ob)
+ closure bind_lambda(closure cl, object ob)
-DESCRIPTION
- Binds an unbound lambda closure to an object and return it.
- The efun can also be used to rebind an efun-, simul-efun
- or operator closure to a different object.
+BESCHREIBUNG
+ Bindet eine ungebundene Lambda-Closure (die von unbound_lambda()
+ erzeugt wurde) an ein Objekt <ob> und gibt die Closure zurueck. Die
+ Funktion kann auch dazu genutzt werden, eine Efun-, Simul-Efun- oder
+ Operator-Closure an ein anderes Objekt zu binden.
- If the optional argument ob is not this_object(), the privilege
- violation ("bind_lambda", this_object(), ob) occurs.
+ Wenn das optionale Argument <ob> nicht mit this_object()
+ uebereinstimmt, wird eine Schutzverletzung ("bind_lambda",
+ this_object(), ob) verursacht.
-HISTORY
- Introduced in 3.2@82.
+GESCHICHTE
+ Eingefuehrt in 3.2.1@82.
-SEE ALSO
+SIEHE AUCH
lambda(E), unbound_lambda(E), apply(E), funcall(E), closures(LPC)
diff --git a/doc/efun/blueprint b/doc/efun/blueprint
index 1c77497..11459fe 100644
--- a/doc/efun/blueprint
+++ b/doc/efun/blueprint
@@ -1,7 +1,7 @@
VORLAEUFIG
SYNOPSIS
object blueprint()
- object blueprint(string|object ob);
+ object blueprint(string|object ob)
BESCHREIBUNG
Die Efun liefert den Blueprint fuer das angegeben Objekt <ob> oder
@@ -11,12 +11,12 @@
Objekte mit replace_program() liefert die Funktion den Blueprint des
ersetzenden Programs.
-BEISPIEL
+BEISPIELE
blueprint("/obj/ding"); -> liefert /obj/ding
blueprint(find_object("/obj/ding")); -> liefert /obj/ding
blueprint(clone_object("/obj/ding")); -> liefert /obj/ding
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
diff --git a/doc/efun/break_point b/doc/efun/break_point
index 584453e..6566923 100644
--- a/doc/efun/break_point
+++ b/doc/efun/break_point
@@ -1,11 +1,11 @@
-OPTIONAL
+OPTIONAL, GESCHUETZT
SYNOPSIS
void break_point()
-DESCRIPTION
- This function is for system internal use and should never be called by
- user objects. It is supposed to check the stack integrity and aborts
- the driver when it detects corruption.
+BESCHREIBUNG
+ Diese Funktion ist fuer interne Benutzung und sollte niemals von einem
+ Userobjekt aufgerufen werden. Die Funktion prueft die Integritaet des
+ Stacks und faehrt den Driver herunter, falls sie Schaeden feststellt.
-SEE ALSO
+SIEHE AUCH
shutdown(E), swap(E)
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)
diff --git a/doc/efun/call_out_info b/doc/efun/call_out_info
index 61d5ff5..df357bc 100644
--- a/doc/efun/call_out_info
+++ b/doc/efun/call_out_info
@@ -1,8 +1,8 @@
SYNOPSIS
- mixed *call_out_info();
+ mixed * call_out_info()
BESCHREIBUNG
- Liefert Informationen ueber alle anhaengigen call_out()s. Das Resultat
+ Liefert Informationen ueber alle laufenden call_out()s. Das Resultat
ist ein Array, bei dem jedes Element wiederum aus einem Array besteht,
das einen call_out() beschreibt. Jedes dieser Unter-Arrays enthaelt 3
oder mehr Elemente:
diff --git a/doc/efun/call_resolved b/doc/efun/call_resolved
index 0103766..26e9d28 100644
--- a/doc/efun/call_resolved
+++ b/doc/efun/call_resolved
@@ -1,5 +1,5 @@
SYNOPSIS
- int call_resolved(mixed result, object ob, string func, mixed arg,...);
+ int call_resolved(mixed result, object ob, string func, mixed arg,...)
BESCHREIBUNG
Die Funktion ist aehnlich zu call_other(). Wenn obj->func() definiert
@@ -15,4 +15,6 @@
tritt ein Fehler auf.
SIEHE AUCH
- call_other(E), function_exists(E), find_object(E)
+ call_other(E), call_direct(E), call_direct_resolved(E),
+ create(A), pragma(LPC), extern_call(E), function_exists(E),
+ functions(LPC), map_objects(E)
diff --git a/doc/efun/caller_stack b/doc/efun/caller_stack
index d1b5777..98b3e24 100644
--- a/doc/efun/caller_stack
+++ b/doc/efun/caller_stack
@@ -1,6 +1,6 @@
SYNOPSIS
- *object caller_stack();
- *object caller_stack(int add_interactive);
+ object * caller_stack()
+ object * caller_stack(int add_interactive)
BESCHREIBUNG
Liefert ein Array der previous_object(), die einen call_other() auf
@@ -11,7 +11,7 @@
wird this_interactive() dem Array hinzugefuegt, oder 0, wenn kein
this_interactive() existiert.
-BEISPIEL
+BEISPIELE
Das interaktive Objekt A gibt ein Kommando ein, das im Objekt B eine
Funktion aufruft, die auf das Objekt C verweist, welches wiederum
eine Funktion im Objekt D aufruft.
@@ -19,15 +19,15 @@
Wenn D nun caller_stack() aufruft, ergibt dies: ({C,B}).
Fuer caller_stack(1) ergibt die Funktion: ({C,B,A}).
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.6, vorgeschlagen von TubMud.
-
-ANMERKUNG
+ANMERKUNGEN
Aufrufe von "alien lfun closures" (vergleiche symbol_function())
erzeugen zwei Eintraege im Stack, wenn das gebundene Objekt sich vom
Objekt der Closure unterscheidet: der erste Eintrag steht fuer das
gebundene Objekt, der zweite fuer das Closure-Objekt.
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.6, vorgeschlagen von Tubmud.
+
SIEHE AUCH
caller_stack_depth(E), previous_object(E), this_interactive(E),
call_other(E)
diff --git a/doc/efun/caller_stack_depth b/doc/efun/caller_stack_depth
index 230827e..41b4e79 100644
--- a/doc/efun/caller_stack_depth
+++ b/doc/efun/caller_stack_depth
@@ -1,9 +1,9 @@
SYNOPSIS
- int caller_stack_depth(void)
+ int caller_stack_depth()
-DESCRIPTION
- Returns the number of previous objects on the stack. This
- can be used for security checks.
+BESCHREIBUNG
+ Liefert die Anzahl previous_object()s im Caller Stack. Dies kann fuer
+ Sicherheitschecks genutzt werden.
-SEE ALSO
+SIEHE AUCH
caller_stack(E), previous_object(E), call_other(E), call_resolved(E)
diff --git a/doc/efun/capitalize b/doc/efun/capitalize
index bbb82b7..5c3b107 100644
--- a/doc/efun/capitalize
+++ b/doc/efun/capitalize
@@ -1,12 +1,12 @@
SYNOPSIS
string capitalize(string str)
-DESCRIPTION
- Convert the first character in str to upper case, and return
- the new string.
+BESCHREIBUNG
+ Konvertiert das erste Zeichen des Strings <str> in einen
+ Grossbuchtaben und gibt den neuen String zurueck.
-EXAMPLES
- capitalize("heya!") -> "Heya!"
+BEISPIELE
+ capitalize("hallo welt!") -> "Hallo welt!"
-SEE ALSO
+SIEHE AUCH
lower_case(E), upper_case(E)
diff --git a/doc/efun/catch b/doc/efun/catch
index c436b7d..57c58aa 100644
--- a/doc/efun/catch
+++ b/doc/efun/catch
@@ -1,6 +1,6 @@
SYNOPSIS
- mixed catch(expr, expr, ...);
- mixed catch(expr, expr, ...; modifiers);
+ mixed catch(expr, expr, ...)
+ mixed catch(expr, expr, ...; modifiers)
BESCHREIBUNG
Wertet die Ausdruecke <expr> aus. Wenn kein Fehler auftritt, wird 0
@@ -34,24 +34,25 @@
ist 2 * __MASTER_EVAL_COST__ .
catch() an sich ist nicht besonders laufzeit-intensiv: es braucht
- nur etwas mehr Zeit als ein Intra-Objekt Funktionsaufruf.
+ nur etwas mehr Zeit als ein Intra-Objekt-Funktionsaufruf.
throw() ist ebenfalls nicht sehr teuer, da lediglich einige
interne Strukturen aufgeraeumt werden muessen.
- Echte Laufzeitfehlers (ob nun mit oder ohne catch()) auf
- der anderen Seite ist sehr zeitintensiv.
+ Echte Laufzeitfehler (ob nun mit oder ohne catch()) sind hingegen
+ sehr zeitintensiv.
catch ist nicht im eigentlichen Sinne eine Efun, sondern eine Compiler
Anweisung.
-BEISPIEL
+
+BEISPIELE
object obj;
string err;
if(err = catch(obj = clone_object("/foo/bar/baz")))
write("Kann das Objekt nicht clonen. Grund: "+err+"\n");
-AENDERUNGEN
+GESCHICHTE
LDMud 3.2.9 fuehrte den 'nolog' catch() als experimentelles Feature
ein.
LDMud 3.2.10 implementierte 'nolog' als offizielle Form und fuehrte
diff --git a/doc/efun/ceil b/doc/efun/ceil
index dc44244..6989baa 100644
--- a/doc/efun/ceil
+++ b/doc/efun/ceil
@@ -1,17 +1,17 @@
SYNOPSIS
- float ceil(int|float arg);
+ float ceil(int|float arg)
BESCHREIBUNG
Rundet <arg> zur naechsten ganzen Zahl auf und liefert das Resultat
zurueck. Wenn <arg> ein Integer ist, wird das Resultat in float
konvertiert.
-BEISPIEL
+BEISPIELE
ceil(4.5); ergibt: 5.0
ceil(-4.5); ergibt: -4.0
ceil(5); ergibt: 5.0
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.7.
LDMud 3.2.9 fuehrte neu Integer als moegliche Argumente ein.
diff --git a/doc/efun/clear_bit b/doc/efun/clear_bit
index 93f15ec..eddd69d 100644
--- a/doc/efun/clear_bit
+++ b/doc/efun/clear_bit
@@ -1,5 +1,5 @@
SYNOPSIS
- string clear_bit(string str, int n);
+ string clear_bit(string str, int n)
BESCHREIBUNG
Gibt einen neuen String zurueck, in dem das n-te Bit im String <str>
diff --git a/doc/efun/clone_object b/doc/efun/clone_object
index f622bef..3b6734f 100644
--- a/doc/efun/clone_object
+++ b/doc/efun/clone_object
@@ -1,23 +1,71 @@
-SYNOPSIS:
+SYNOPSIS
object clone_object(string name)
+ object clone_object(object template)
-DESCRIPTION:
- Clone a new object from definition name, and give it a new unique
- name. Return the new object.
-
- The original, called blue print, used for cloning, should not be
- used in the game, only be used for cloning. The cloned objects
- contain only the data but the blue print also the function code.
- The blue print is the one without a unique number at the end of
- the object's object_name(). The clone_object() function never
- returns a blue print.
-
- Note that the pathname must be complete, which means there are no
- relative paths allowed.
+BESCHREIBUNG
+ Clont ein neues Objekt aus der Definiton <name> oder alternativ aus
+ dem Objekt <template>. In beiden Faellen wird dem Clon ein
+ individueller Name zugeordnet, dann wird der Clon zurueck gegeben.
-EXAMPLE:
- object torch;
- torch = clone_object("/obj/torch");
+ Das Original, Blueprint genannt, wird nur fuer das Clonen verwendet
+ und sollte deshalb nicht im Spiel genutzt werden. Die geclonten
+ Objekte enthalten nur Daten, der Blueprint hingegen auch den
+ Funktionscode.
-SEE ALSO:
- destruct(E), move_object(E), uids(C)
+ Den Blueprint erkennt man daran, dass er keine Nummer im Objektnamen
+ traegt. clone_object() liefert niemals einen Blueprint zurueck.
+
+ Wenn der Blueprint existiert und einen heart_beat() aufweist, schaltet
+ clone_object() diesen aus.
+
+ Die Pfadangabe muss komplett sein. Relative Pfade sind nicht gestattet.
+ Wenn strikte EUIDs gefordert werden, muss das clonende Objekt eine
+ EUID != 0 haben.
+
+
+ -- Variablen Initialisierung --
+
+ Allgemein werden die Variablen in Blueprints und Clones gleichermassen
+ durch Aufruf der internen lfun __INIT() initialisiert.
+
+ Ist allerdings das #pragma share_variables in Effekt (entweder
+ explizit im Objekt angegeben, oder als allgemeine Laufzeitoption),
+ werden die Werte fuer die Klonvariable aus den _aktuellen_ Variablen
+ der Blueprint kopiert.
+
+ Variablen ohne explizite Initialisierung sind hiervon unbetroffen und
+ werden stets auf 0 gesetzt.
+
+
+BEISPIELE
+ // Clone eine Fackel (Name des Files nicht im Compat Format)
+ object fackel;
+ fackel = clone_object("/obj/fackel");
+
+ // Clone zwei Schluessel (Name des Files im Compat Format)
+ object key1, key2;
+ key1 = clone_object(load_object("obj/key"));
+ key2 = clone_object(key1);
+
+ // Create a specialized weapons blueprint.
+ --- std/weapon.c: ---
+ #pragma share_variables
+ int weapon_class = 1;
+
+ --- broadsword.c: ---
+ inherit "/std/weapon";
+
+ int create() {
+ weapon_class = 2;
+ replace_program("/std/weapon");
+ }
+
+
+GESCHICHTE
+ Modifiziert in LDMud 3.2.6: es werden auch Objekte als Argument
+ akzeptiert.
+ LDMud 3.3.378 fuehrte das pragma share_variables ein.
+
+SIEHE AUCH
+ blueprint(E), clonep(E), destruct(E), clones(E), load_name(E),
+ load_object(E), move_object(E), uids(C), program_name(E), pragma(LPC)
diff --git a/doc/efun/clonep b/doc/efun/clonep
index afff71a..6e63cd2 100644
--- a/doc/efun/clonep
+++ b/doc/efun/clonep
@@ -1,18 +1,18 @@
SYNOPSIS
- int clonep ()
- int clonep (object obj)
- int clonep (string obj)
- int clonep (mixed arg)
+ int clonep()
+ int clonep(object obj)
+ int clonep(string obj)
+ int clonep(mixed arg)
BESCHREIBUNG
Liefert 1, wenn das angegebene Objekt ein Klon ist, ansonsten 0.
Das Objekt kann dabei auch durch seinen Objekt-Namen angegeben werden.
Wird kein Argument uebergeben, so wird this_object() getestet.
- Liefert 0, wenn das Argument von einem anderen Typ.
+ Liefert 0, wenn das Argument von einem anderen Typ ist.
Ein Objekt, dessen Programm mittels replace_program() ersetzt wurde,
zaehlt nicht als Klon.
-BEISPIEL
+BEISPIELE
object o;
o = clone_object("/obj/ding");
write(clonep(o)); --> schreibt "1"
@@ -20,7 +20,7 @@
(Im COMPAT_MODE "obj/ding" als Dateinahmen benutzen)
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.6, geaendert in 3.2.7, so dass Objekte mit
ersetzten Programmen nicht mehr als Klone zaehlen.
diff --git a/doc/efun/clones b/doc/efun/clones
index 23e20d2..f302287 100644
--- a/doc/efun/clones
+++ b/doc/efun/clones
@@ -1,7 +1,7 @@
SYNOPSIS
- *object clones();
- *object clones(int what);
- *object clones(string|object obj [, int what]);
+ object * clones()
+ object * clones(int what)
+ object * clones(string|object obj [, int what])
BESCHREIBUNG
Diese Efun liefert ein Array mit allen Clones eines bestimmten
@@ -22,9 +22,9 @@
Wenn der Treiber mit DYNAMIC_COSTS kompiliert wurde, sind die Kosten
fuer diese Funktion proportional zur Anzahl Objekte im Spiel.
-BEISPIEL
+BEISPIELE
object o, p;
- o = clone_object("/std/thing"); /* oder "std/thing" im COMPAT_MODE */
+ o = clone_object("/std/thing"); /* oder "std/thing" im COMPAT-Modus */
destruct(find_object("/std/thing"));
p = clone_object("/std/thing");
@@ -33,6 +33,6 @@
clones("/std/thing", 1) --> ergibt ({ o })
clones("/std/thing", 2) --> ergibt ({ o, p })
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.8.
LDMud 3.2.9 fuehrte die dynamischen Kosten ein.
diff --git a/doc/efun/closurep b/doc/efun/closurep
index 25a2829..e93183a 100644
--- a/doc/efun/closurep
+++ b/doc/efun/closurep
@@ -4,7 +4,7 @@
BESCHREIBUNG
Liefert 1, wenn das Argument eine Closure ist, ansonsten 0.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in 3.2@70.
SIEHE AUCH
diff --git a/doc/efun/command b/doc/efun/command
index 09d6c0b..5058a14 100644
--- a/doc/efun/command
+++ b/doc/efun/command
@@ -1,50 +1,31 @@
-command()
-FUNKTION:
- int command(string str)
- int command(string str, object ob)
+GESCHUETZT
+SYNOPSIS
+ int command(string str)
+ int command(string str, object ob)
-BESCHREIBUNG:
- Fuehrt str wie ein Kommando welches direkt vom Nutzer abgegeben wurde
- aus. Alle Effekte des Kommandos wirken sich auf this_object() oder,
- falls angegeben, auf das Objekt <obj> aus.
+BESCHREIBUNG
+ Wertet <str> wie ein Kommando aus, das direkt von einem interaktiven
+ Benutzer gegeben wurde. Das Kommando wird auf das aktuelle Objekt
+ angewendet oder, falls angegeben, auf das Objekt <obj>.
- Der Rueckgabewert ist >=1 fuer Erfolg und 0 fuer Misserfolg.
- Rueckgabewert ist im Erfolgsfall die Hoehe der EvalCost in Ticks.
+ Der Rueckgabewert ist 0 bei Fehlschlag. Bei Erfolg wird ein
+ numerischer Wert zurueckgegeben, der die Eval Kosten darstellt. Ein
+ hoeherer Rueckgabewert bedeutet hoehere Kosten. Die Eval Kosten
+ entsprechen ungefaehr der Anzahl ausgefuehrter LPC Maschinencode
+ Instruktionen.
- Wenn command() auf ein anderes Objekt angewendet wird, koennen auf
- diesem Wege keine "static" deklarierten Funktionen aufgerufen werden,
- um etwas Schutz vor unerlaubten Aufrufen zu geben.
+ Wenn command() auf auf ein anderes Objekt angewedet wird, koennen auf
+ diesem Wege keine "static" deklarierten Funktionen aufgerufen werden,
+ um etwas Schutz vor unerlaubten Aufrufen zu geben.
- Kommandi werden gestapelt, das heisst, nach der Ausfuehrung von <str>
- werden die alten Werte fuer this_player(), query_verb() etc. wieder
- hergestellt (ein Kommando kann dazu fuehren, dass ein Kommando
- ausgefuehrt wird).
+ Kommandos werden gestapelt, das heisst, nach der Ausfuehrung von <str>
+ werden die alten Werte fuer this_player(), query_verb() etc. wieder
+ hergestellt.
-BEMERKUNGEN:
- Die meisten in Lebewesen definierten Kommandofunktionen sind vor
- aeusserem Aufrufen durch "static" oAe geschuetzt. Zum Ausfuehren dieser
- Kommandos muss command_me(L) eingesetzt werden, um diesen Schutz zu
- umgehen.
-
-BEISPIELE:
- Siehe command_me(L) fuer einen Vergleich.
-
- // #1 Ein NPC nimmt und zuendet eine herumliegende /std/lightsource an
- object f = present("\nlichtquelle", environment());
- if(f && command("nimm lichtquelle"))
- if(command("zuende lichtquelle an"))
- tell_room(environment(), Name(WER)+" freut sich.\n");
- else
- tell_room(environment(), Name(WER)+" schaut bedroeppelt.\n");
-
- // #2 Ein NPC traegt seine Sachen
- clone_object("/ruestung/sommerkleid")->move(this_object(), 2);
- command("trage kleid")
- // aequivalent und besser ist hier:
- AddItem("/ruestung/sommerkleid", REFRESH_REMOVE|CLONE_WEAR);
+GESCHICHTE
+ Bis 3.2.6 im Native-Modus konnten Kommandos nur auf das aktuelle
+ Objekt angewendet werden.
+ Seit 3.2.7 werden Kommandos gestapelt.
SIEHE AUCH
- command_stack(E), notify_fail(E), enable_commands(E), get_eval_cost(E)
- command_me(L)
-
-6 Sep 2012 Gloinson
+ command_stack(E), notify_fail(E), enable_commands(E), get_eval_cost(E)
diff --git a/doc/efun/command_stack b/doc/efun/command_stack
index d3a4e46..37e2f0b 100644
--- a/doc/efun/command_stack
+++ b/doc/efun/command_stack
@@ -1,13 +1,13 @@
GESCHUETZT
SYNOPSIS
- #include <sys/commands.h>
+ #include <commands.h>
- *mixed command_stack();
+ mixed * command_stack()
BESCHREIBUNG
- Liefert ein Array, das den Kommando Stack beschreibt. Das Array
- umfasst command_stack_depth() Eintraege, der erste davon beschreibt
- das Top-Level Kommando, der letze Eintrag das aktuelle Kommando.
+ Liefert ein Array, das den Kommandostack beschreibt. Das Array
+ umfasst command_stack_depth() Eintraege; der erste davon beschreibt
+ das Top-Level-Kommando, der letzte Eintrag das aktuelle Kommando.
Jeder Eintrag ist wiederum ein Array mit folgenden Eintraegen:
@@ -19,16 +19,16 @@
mixed [CMD_FAILOBJ]: das Objekt, welches notify_fail() gesetzt
hat
- CMD_ORIGIN und CMD_PLAYER sind fuer gewohenlich das gleiche Objekt.
- Es gibt nur einen Unterschied, wenn der modify_command Hook den
+ CMD_ORIGIN und CMD_PLAYER sind fuer gewoehnlich das gleiche Objekt.
+ Es gibt nur einen Unterschied, wenn der modify_command-Hook den
Kommandogeber mit set_this_player() aendert.
-AENDERUNGEN
+ANMERKUNGEN
+ Jeder der Eintraege im Array kann 0 sein.
+
+GESCHICHTE
Eingefuehrt in LDMud 3.2.7.
LDMud 3.2.8 fuegte den CMD_FAILOBJ Eintrag hinzu.
-ANMERKUNG
- Jeder der Eintraege im Array kann 0 sein.
-
SIEHE AUCH
command(E), command_stack_depth(E), notify_fail(E)
diff --git a/doc/efun/command_stack_depth b/doc/efun/command_stack_depth
index 37205b5..b9b67c5 100644
--- a/doc/efun/command_stack_depth
+++ b/doc/efun/command_stack_depth
@@ -1,12 +1,12 @@
GESCHUETZT
SYNOPSIS
- int command_stack_depth();
+ int command_stack_depth()
BESCHREIBUNG
- Liefert die Anzahl der verschachtelten Kommandi, also die Tiefe des
+ Liefert die Anzahl der verschachtelten Kommandos, also die Tiefe des
Command Stacks.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.7.
SIEHE AUCH
diff --git a/doc/efun/copy b/doc/efun/copy
index 39f3752..be041ac 100644
--- a/doc/efun/copy
+++ b/doc/efun/copy
@@ -1,23 +1,24 @@
SYNOPSIS
- mixed copy(mixed arg);
+ mixed copy(mixed arg)
BESCHREIBUNG
- Erzeugt eine flache Kopie von <arg> und liefert diese zurueck. Fuer
- Arrays und Mappings heisst das, dass neue Arrays bzw. Mappings erzeugt
- werden, die Kopien der Elemente des Originals enthalten. Eingebettete
- Arrays und Mappings werden jedoch als Referenz uebergeben!
+ Erzeugt eine flache Kopie von <arg> und liefert diese zurueck. Fuer
+ Arrays und Mappings heisst das, dass neue Arrays bzw. Mappings erzeugt
+ werden, die Kopien der Elemente des Originals enthalten. Eingebettete
+ Arrays und Mappings werden jedoch als Referenz uebergeben!
- Fuer andere Werte von <arg> bewirkt diese Funktion nichts.
+ Fuer andere Werte von <arg> bewirkt diese Funktion nichts.
-BEISPIEL
- mixed *a, *b;
- a = ({ 1, ({ 21, 22 }) });
- b = copy(a);
- a[0] = -1; a[1][0] = -21;
- --> a ist nun ({ -1, ({ -21, 22 }) })
- b ist nun ({ 1, ({ -21, 22 }) })
+BEISPIELE
+ mixed *a, *b;
+ a = ({ 1, ({ 21, 22 }) });
+ b = copy(a);
+ a[0] = -1; a[1][0] = -21;
+ --> a ist nun ({ -1, ({ -21, 22 }) })
+ b ist nun ({ 1, ({ -21, 22 }) })
+
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.6.
SIEHE AUCH
- deep_copy(E)
-
-10.Apr.2007 Gloinson
\ No newline at end of file
+ deep_copy(E)
diff --git a/doc/efun/copy_bits b/doc/efun/copy_bits
index ec68d51..c3a8eb2 100644
--- a/doc/efun/copy_bits
+++ b/doc/efun/copy_bits
@@ -1,6 +1,6 @@
SYNOPSIS
string copy_bits(string src, string dest [, int srcstart
- [, int deststart [, int copylen]]]);
+ [, int deststart [, int copylen]]])
BESCHREIBUNG
Kopiert den Bitbereich [<srcstart> .. <srcstart> + <copylen>] aus dem
@@ -33,8 +33,8 @@
(Die Notation src[] / dest[] dient nur der Illustration!)
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.9
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
clear_bit(E), set_bit(E), test_bit(E), next_bit(E), last_bit(E),
diff --git a/doc/efun/copy_file b/doc/efun/copy_file
index 6e091ed..7f12111 100644
--- a/doc/efun/copy_file
+++ b/doc/efun/copy_file
@@ -1,19 +1,22 @@
SYNOPSIS
int copy_file(string from, string to)
-DESCRIPTION
- The efun copy_file() will copy the file <from> to the new name <to>.
- If <to> exists and is a directory, then <from> will be placed in that
- directory and keep its original name.
-
- You must have read permission for <from> and write permission for
- the target file to copy the file.
-
- On successful completion copy_file() will return 0. If any
- occurs, 1 is returned, or a runtime is generated.
+BESCHREIBUNG
+ Die Efun copy_file() kopiert die Datei <from> nach <to>. Wenn <to> ein
+ existierendes Verzeichnis ist, wird <from> in dieses Verzeichnis
+ kopiert und behaelt seinen Namen.
-EXAMPLE
+ Die Funktion erfordert Lesezugriff auf <from> und Schreibrechte fuer
+ <to>.
+
+ Bei Erfolg liefert die Funktion 0 zurueck, im Fehlerfalle einen
+ Wert ungleich Null.
+
+BEISPIELE
copy_file("/players/wizard/obj.c", "/players/wizard/newobj.c");
-SEE ALSO
+GESCHICHTE
+ LDMud 3.2.9 beschraenkte die Fehlermeldungen auf Werte != 0.
+
+SIEHE AUCH
mkdir(E), rmdir(E), rm(E), rename(E)
diff --git a/doc/efun/cos b/doc/efun/cos
index 85f3e92..1345404 100644
--- a/doc/efun/cos
+++ b/doc/efun/cos
@@ -4,7 +4,7 @@
BESCHREIBUNG
Liefert den Kosinus des Argumentes.
-AENDERUNGEN
+GESCHICHTE
LDMud 3.2.9: Ganzzahlen (Integers) als Argument hinzugefuegt.
SIEHE AUCH
diff --git a/doc/efun/crypt b/doc/efun/crypt
index 932089d..e6c183d 100644
--- a/doc/efun/crypt
+++ b/doc/efun/crypt
@@ -1,16 +1,18 @@
SYNOPSIS
- string crypt(string str, int seed);
- string crypt(string str, string seed);
+ string crypt(string str, int seed)
+ string crypt(string str, string seed)
+ string crypt(bytes str, int seed)
+ string crypt(bytes str, string seed)
BESCHREIBUNG
- Verschluesselt den String <str> mit dem Schluessel <seed>. <seed> kann
- entweder ein Integer sein oder zwei Zeichen aus dem String <seed>.
- Wenn <seed> 0 ist, wird ein zufaelliger Schluessel erzeugt.
+ Verschluesselt den String <str> mit dem Schluessel <seed>. <seed> kann
+ entweder ein Integer sein oder zwei Zeichen aus dem String <seed>.
+ Wenn <seed> 0 ist, wird ein zufaelliger Schluessel erzeugt.
- Das Resultat enthaelt den Schluessel als die ersten beiden Zeichen.
+ Das Resultat enthaelt den Schluessel als die ersten beiden Zeichen.
- Fuer Passwortabfragen, die ohne Echo eingegeben werden koennen sollen,
- bietet input_to() ein spezielles Flag.
+ Fuer Passwortabfragen, die ohne Echo eingegeben werden koennen sollen,
+ bietet input_to() ein spezielles Flag.
SIEHE AUCH
- md5_crypt(E), md5(E), sha1(E), hash(E), hmac(E)
\ No newline at end of file
+ md5_crypt(E), md5(E), sha1(E), hash(E), hmac(E)
diff --git a/doc/efun/ctime b/doc/efun/ctime
index 8db61f8..5bb3136 100644
--- a/doc/efun/ctime
+++ b/doc/efun/ctime
@@ -1,22 +1,25 @@
SYNOPSIS
- string ctime(int clock);
- string ctime(int* uclock);
+ string ctime(int clock)
+ string ctime(int *uclock)
BESCHREIBUNG
- Interpretiert das Argument <clock> als Anzahl Sekunden seit dem
- 01.JAN.1970, 00:00 Uhr und konvertiert dieses in einen ansehnlichen
- String, der Datum und Zeit enthaelt. Wenn <clock> nicht angegeben
- wird, wird time() verwendet.
+ Interpretiert das Argument <clock> als Anzahl Sekunden seit dem
+ 01.JAN.1970, 00:00 Uhr und konvertiert dieses in einen ansehnlichen
+ String, der Datum und Zeit enthaelt. Wenn <clock> nicht angegeben
+ wird, wird time() verwendet.
- Die zweite Form entspricht der ersten, ausser dass das Argument ein
- Array mit zwei Integer Elementen ist. Das erste Element int[0] gibt
- die Anzahl Sekunden seit dem 01.JAN.1970 an, das zweite Element
- int[1] die Anzahl Millisekunden innerhalb dieser Sekunde.
+ Die zweite Form entspricht der ersten, ausser dass das Argument ein
+ Array mit zwei Integer Elementen ist. Das erste Element int[0] gibt
+ die Anzahl Sekunden seit dem 01. Januar 1970 an, das zweite Element
+ int[1] die Anzahl Millisekunden innerhalb dieser Sekunde.
-BEISPIEL
- write(ctime()+"\n");
+BEISPIELE
+ write(ctime()+"\n");
- Dies gibt etwas aus wie "Sun Oct 26 19:28:30 2003".
+ Dies gibt etwas aus wie "Sun Oct 26 19:28:30 2003".
+
+GESCHICHTE
+ LDMud 3.2.9 fuehrte die zweite Variante ein.
SIEHE AUCH
- dtime(E), gmtime(E), localtime(E), strftime(E), time(E), utime(E)
+ gmtime(E), localtime(E), mktime(E), strftime(E), time(E), utime(E)
diff --git a/doc/efun/db_coldefs b/doc/efun/db_coldefs
index c135a11..bf08fc2 100644
--- a/doc/efun/db_coldefs
+++ b/doc/efun/db_coldefs
@@ -1,6 +1,6 @@
OPTIONAL
SYNOPSIS
- string * db_coldefs (int handle)
+ string * db_coldefs(int handle)
BESCHREIBUNG
Resultat ist ein Array mit den Spaltennamen der Tabelle des
diff --git a/doc/efun/db_connect b/doc/efun/db_connect
index abe20c9..ffbd515 100644
--- a/doc/efun/db_connect
+++ b/doc/efun/db_connect
@@ -7,8 +7,9 @@
BESCHREIBUNG
Stelle eine Verbindung zur SQL-Datenbank <database> des
lokalen SQL-Servers her. Das Ergebnis ist die Handle-Nummer fuer diese
- Verbindung und muss fuer alle Anfragen zu dieser Datenbank verwendet
- werden.
+ Verbindung und kann fuer Anfragen zu dieser Datenbank verwendet
+ werden. Bei der Verbindung ist die automatische Wiederverbindung
+ aktiv - moegliche Folgen davon finden sich in mysql(C).
Existiert die Datenbank nicht, oder kann der lokale SQL-Server nicht
gefunden werden, wird ein Laufzeitfehler erzeugt.
diff --git a/doc/efun/db_handles b/doc/efun/db_handles
index 1a304b5..99811a6 100644
--- a/doc/efun/db_handles
+++ b/doc/efun/db_handles
@@ -1,6 +1,6 @@
OPTIONAL
SYNOPSIS
- int *db_handles()
+ int * db_handles()
BESCHREIBUNG
Result ist ein Array mit allen aktiven Verbindungshandles zum
diff --git a/doc/efun/db_insert_id b/doc/efun/db_insert_id
index 25e2a17..93159e2 100644
--- a/doc/efun/db_insert_id
+++ b/doc/efun/db_insert_id
@@ -1,6 +1,6 @@
OPTIONAL
SYNOPSIS
- int db_insert_id (int handle)
+ int db_insert_id(int handle)
BESCHREIBUNG
Nach dem Einfuegen einer Zeile in eine Tabelle mit einem
diff --git a/doc/efun/debug_message b/doc/efun/debug_message
index 07e75e6..6b3b652 100644
--- a/doc/efun/debug_message
+++ b/doc/efun/debug_message
@@ -1,12 +1,12 @@
SYNOPSIS
- #include <sys/debug_message.h>
+ #include <debug_message.h>
- void debug_message(string text);
- void debug_message(string text, int flags);
+ void debug_message(string text)
+ void debug_message(string text, int flags)
BESCHREIBUNG
Gibt <text> an die Ausgaenge stdout und stderr sowie an die Datei
- <host>.debug.log, oder an eine beliebige Kombination dieser drei.
+ <host>.debug.log oder an eine beliebige Kombination dieser drei aus.
Das Argument <flag> bezeichnet durch eine Kombination von Bitflags das
Ziel und die Art, in der das Resultat geschrieben wird.
@@ -18,7 +18,8 @@
Wenn <flags> 0 ist, weggelassen wird oder kein Ziel-Flag enthaelt,
wird <text> standardmaessig an stdout und ins Logfile ausgegeben.
-BEISPIEL
+
+BEISPIELE
debug_message("Dieser Text geht an stdout und ins Logfile.\n");
debug_message("Dies geht an stderr.\n", DMSG_STDERR);
debug_message("Dies geht an stdout und stderr.\n", DMSG_STDOUT
@@ -28,7 +29,7 @@
debug_message("Die geht an stdout, mit vorangestelltem Timestamp.\n",
DMSG_STDOUT | DMSG_STAMP);
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in 3.2.1@34.
LDMud 3.2.9 fuehrte das Argument <flags> ein.
diff --git a/doc/efun/deep_copy b/doc/efun/deep_copy
index 1cef9a8..460d90a 100644
--- a/doc/efun/deep_copy
+++ b/doc/efun/deep_copy
@@ -1,5 +1,5 @@
SYNOPSIS
- mixed deep_copy(mixed arg);
+ mixed deep_copy(mixed arg)
BESCHREIBUNG
Erzeugt eine echte Kopie von <arg> und liefert diese zurueck. Fuer
@@ -14,7 +14,7 @@
Mapping oder Array zu den Evaluationskosten sowohl in der Groesse als
auch in der Einbettungstiefe.
-BEISPIEL
+BEISPIELE
mixed *a, *b;
a = ({ 1, ({ 21, 22 }) });
b = deep_copy(a);
@@ -22,6 +22,6 @@
--> a ist jetzt ({ -1, ({ -21, 22 }) })
b bleibt ({ 1, ({ 21, 22 }) })
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.6.
LDMud 3.2.9 fuegte die dynamischen Kosten zur Efun hinzu.
diff --git a/doc/efun/deep_inventory b/doc/efun/deep_inventory
index 51f4c66..05200f1 100644
--- a/doc/efun/deep_inventory
+++ b/doc/efun/deep_inventory
@@ -1,7 +1,7 @@
SYNOPSIS
- *object deep_inventory();
- *object deep_inventory(object ob);
- object *deep_inventory(object ob, int depth)
+ object * deep_inventory()
+ object * deep_inventory(object ob)
+ object * deep_inventory(object ob, int depth)
BESCHREIBUNG
Gibt ein Array der Objekte zurueck, die in <obj> enthalten sind.
@@ -17,7 +17,7 @@
<depth> < 0: Nur die Objekte in der -<depth>ten Ebene werden
zurueckgegeben.
-BEISPIEL
+BEISPIELE
ob
+- ob1
+- ob2
diff --git a/doc/efun/destruct b/doc/efun/destruct
index f64de56..fd4ab2c 100644
--- a/doc/efun/destruct
+++ b/doc/efun/destruct
@@ -27,7 +27,7 @@
es moeglich, dass ein Objekt noch lange nach seiner Zerstoerung
Speicher belegt, obwohl es von ausserhalb nicht mehr gefunden wird.
-BEISPIEL
+BEISPIELE
ob->remove();
if(ob) // es existiert noch, vielleicht ist die Lfun
// remove() nicht definiert?
@@ -36,7 +36,7 @@
Dies ist die Standard-Methode, ein Objekt zu zerstoeren, ihm aber
vorher noch die Chance zu geben, es selber zu tun.
-AENDERUNGEN
+GESCHICHTE
LDMud 3.2.7: 0 (zerstoerte Objekt) als Argument annehmen.
SIEHE AUCH
diff --git a/doc/efun/ed b/doc/efun/ed
index 8a8dc33..44c84ff 100644
--- a/doc/efun/ed
+++ b/doc/efun/ed
@@ -3,17 +3,17 @@
void ed(string file)
void ed(string file, string func)
-DESCRIPTION
- Calling without arguments will start the editor ed with the
- name of the error file, that was returned by
- master->valid_read(0, geteuid(this_player()), "ed_start",
- this_player()), usually something like ~/.err. If that file is
- empty, ed will immediatly exit again.
- Calling ed() with argument file will start the editor on the
- file. If the optional argument func is given, this function
- will be called after exiting the editor.
+BESCHREIBUNG
+ Der Aufruf von ed() ohne Argumente startet den Editor mit dem Namen
+ der Fehlerdatei, die von master->valid_read(0, geteuid(this_player()),
+ "ed_start", this_player()) bestimmt wird, gewoehnlich etwas wie
+ ~/.err. Wenn dieses File leer ist, wird ed() sofort wieder beendet.
- The editor ed is almost ed(1) compatible.
+ Wird ed() mit einem Argument <file> aufgerufen, wird der Editor fuer
+ dieses File geoeffnet. Wird zusaetzlich das optionale Argument <func>
+ angegeben, wird diese Funktion nach dem Beenden des ed() aufgerufen.
-SEE ALSO
+ Der LPC-Editor ist fast ed(1)-kompatibel.
+
+SIEHE AUCH
enable_commands(E), query_editing(E), ed0(LPC)
diff --git a/doc/efun/efun b/doc/efun/efun
index 88cd3f5..1b52273 100644
--- a/doc/efun/efun
+++ b/doc/efun/efun
@@ -3,7 +3,7 @@
BESCHREIBUNG
Dieses Directory enthaelt die Beschreibungen fuer die Efuns in
- LDMud 3.3 .
+ LDMud 3.3.
Diese Funktionen werden vom Driver zur Verfuegung gestellt und koennen
von jedem LPC-Objekt verwendet werden.
@@ -23,23 +23,35 @@
process_string()
rusage()
set_is_wizard()
- set_light()
transfer()
+ tls_available()
+ tls_check_certificate()
+ tls_deinit_connection()
+ tls_error()
+ tls_init_connection()
+ tls_query_connection_info()
+ tls_query_connection_state()
+ tls_refresh_certs()
+ xml_generate()
+ xml_parse()
- 'Vorlaeufig'
Das Verhalten dieser Efuns kann sich in spaeteren Driverversionene
aendern.
+ tls_*()
+ xml_*()
- - 'Obsolet' or 'Veraltet'
+ - 'Obsolet' bzw. 'Veraltet'
make_shared_string()
+ md5()
+ sha1()
Diese Efuns sollten nicht weiter verwendet werden. Sie stehen
lediglich aus Kompatibilitaetsgruenden zur Verfuegung, und
werden in einer spaeteren Drivervariante entfernt werden.
-
SIEHE AUCH
efuns(LPC), applied(A), master(M), lpc(LPC), concepts(C), driver(D)
diff --git a/doc/efun/exec b/doc/efun/exec
index c86d3e0..10a320a 100644
--- a/doc/efun/exec
+++ b/doc/efun/exec
@@ -1,39 +1,40 @@
+GESCHUETZT
SYNOPSIS
int exec(object new, object old)
-DESCRIPTION
- exec() switches the connection from the interactive object old
- to the object new. If the new object is also interactive, it's
- connection will be transferred to the old object, thus
- exchaning the two connections between the object. If the new
- object is not interactive, the old will not be interactive
- anymore after the exec call succeeded.
+BESCHREIBUNG
+ exec() schaltet die Verbindung um vom interaktiven Objekt <old> zum
+ Objekt <old>. Wenn <new> ebenfalls interaktiv ist, wird dessen
+ Verbindung zum Objekt <old> uebertragen, die Verbindungne von <old>
+ und <new> werden also ausgetauscht. Wenn <new> nicht interaktiv ist,
+ ist <old> nach der Ausfuehrung von exec() nicht mehr interaktiv.
- The result is 1 on success, and 0 on failure.
+ Das Resultat von exec() ist 1 bei Erfolg, 0 sonst.
- exec() is used to load different "user objects" or to reconnect
- link dead users.
+ exec() wird verwendet, um unterschiedliche "user objects" zu laden
+ oder um User mit totem Netz wieder zu verbinden.
- To provide security mechanisms, the interpreter calls
- master->valid_exec(current_program, new, old), which must
- return anything other than 0 to allow this exec() invocation.
+ Um Sicherheitsmechanismen zu gewaehrleisten, wird im Masterobjekt
+ valid_exec(<laufendes Programm>, <new>, <old>) aufgerufen. Dieser
+ Aufruf muss etwas von 0 verschiedenes liefern, um den Aufruf von
+ exec() zu erlauben.
- After the exec(), if arg 2 was this_player(), this_player()
- becomes arg 1, else vice versa. Ditto for this_interactive().
+ Wenn <old> this_player() war, enthaelt this_player() nach dem Aufruf
+ von exec() <new> und umgekehrt. Gleiches gilt fuer this_interactive().
- Take care when writing a simul-efun around exec(): the
- 'current_program' passed to the valid_exec() function will be
- that of the simul-efun object. To get around this, use
- bind_lambda() to bind #'exec to the real object and funcall()
- the resulting closure.
+ Vorsicht ist geboten, wenn eine simul-efun() um exec() herum gebaut
+ wird: das <laufende Programm>, das an valid_exec() uebergeben wird,
+ ist das simul-efun Objekt. Um dieses Problem zu umgehen, kann mittels
+ bind_lambda() #'exec an das richtige Objekt gebunden und anschliessend
+ mit funcall() aufgerufen werden.
-EXAMPLE
+BEISPIELE
ob = clone_object("std/player");
exec(ob, this_object());
destruct(this_object());
-HISTORY
- LDMud 3.2.9 added the switchover of this_interactive().
+GESCHICHTE
+ LDMud 3.2.9 fuehrte den Austauschprozess fuer this_interactive() ein.
-SEE ALSO
+SIEHE AUCH
connect(M), disconnect(M), logon(A), interactive(E)
diff --git a/doc/efun/execute_command b/doc/efun/execute_command
index 0784c7e..1ef2343 100644
--- a/doc/efun/execute_command
+++ b/doc/efun/execute_command
@@ -1,6 +1,6 @@
VORLAEUFIG, GESCHUETZT
SYNOPSIS
- int execute_command(string command, object origin, object player);
+ int execute_command(string command, object origin, object player)
BESCHREIBUNG
Diese Funktion bietet Low-Level Zugriff auf den Kommandoparser:
@@ -14,8 +14,8 @@
H_NOTIFY_FAIL Hook. Zwar kann notify_fail() verwendet werden, die
Verarbeitung muss jedoch durch das aufrufende Objekt erfolgen.
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.7
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.7.
SIEHE AUCH
hooks(C), command(E), notify_fail(E), command_stack(E)
diff --git a/doc/efun/exp b/doc/efun/exp
index c5746dc..584fc0b 100644
--- a/doc/efun/exp
+++ b/doc/efun/exp
@@ -1,8 +1,11 @@
SYNOPSIS
- float exp(int|float zahl);
+ float exp(int|float zahl)
BESCHREIBUNG
Die Exponentialfunktion. Liefert e^zahl.
+GESCHICHTE
+ LDMud 3.2.9 erlaubte Ganzzahlen als Argument.
+
SIEHE AUCH
log(E), pow(E)
diff --git a/doc/efun/expand_define b/doc/efun/expand_define
index c6ff189..5e2eca0 100644
--- a/doc/efun/expand_define
+++ b/doc/efun/expand_define
@@ -1,24 +1,24 @@
SYNOPSIS
- string expand_define (string name)
- string expand_define (string name, string arg, ...)
+ string expand_define(string name)
+ string expand_define(string name, string arg, ...)
-DESCRIPTION
- Expands the macro <name> with the argument(s) <arg>... (default is
- one empty string "").
- Result is the expanded macro, or 0 if there is no macro with
- that name.
+BESCHREIBUNG
+ Wandelt das Makro <name> mit den Argumenten <arg> in den
+ vollstaendigen String um. Fuer <arg> wird standardmaessig ein
+ leerer String "" verwendet. Die Funktion liefert das umgewandelte
+ Makro oder 0, wenn kein Makro mit dem Namen <name> existiert.
- This efun is applicable only while an object is compiled,
- therefore its usage is restricted to a few functions like the
- H_INCLUDE_DIRS driver hook, or the masters runtime_error()
- function.
+ Diese Efun kann nur aufgerufen werden, waehrend das Objekt kompiliert
+ wird, ihre Benutzung ist deshalb auf wenige Funktionen beschraenkt,
+ etwa den H_INCLUDE_DIRS Treiber Hook oder runtime_error() im
+ Masterobjekt.
-EXAMPLE
- While compiling 'foo.c':
- expand_define("__FILE__") --> "foo.c"
+BEISPIELE
+ Waehrend dem Kompilieren von 'foo.c':
+ expand_define("__FILE__") --> "foo.c"
-HISTORY
- Introduced in 3.2.1@93.
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.1@93.
-SEE ALSO
+SIEHE AUCH
hooks(C), runtime_error(M)
diff --git a/doc/efun/explode b/doc/efun/explode
index 096eaa1..f004d41 100644
--- a/doc/efun/explode
+++ b/doc/efun/explode
@@ -1,10 +1,13 @@
SYNOPSIS
- string *explode(string str, string del)
+ string * explode(string str, string del)
+ bytes * explode(bytes str, bytes del)
BESCHREIBUNG
Liefert ein Feld (Array) mit Zeichenketten (Strings), indem alle
Vorkommen von del (delimiter = Trenner) aus str herausgeschnitten
- werden und so str in mehrere Zeichenketten zerlegt wird.
+ werden und so str in mehrere Zeichenketten zerlegt wird. Falls
+ eine Bytefolge uebergeben wurde, so wird diese in gleicher Weise
+ zerschnitten und zurueckgegeben.
implode(explode(str, del), del) == str ist immer wahr.
@@ -13,16 +16,19 @@
-------------------------------------------------------------------
explode(" ab cd ef ", " ") ({ "", "ab", "cd", "ef", "" })
explode("abc", "abc") ({ "", "" })
- explode("", "") ({})
+ explode("", "") ({ "" })
+ explode("", <whatever>) ({ "" })
explode("abc", "xyz") ({ "abc" })
explode("abc", "") ({ "a", "b", "c" })
-AENDERUNGEN
+GESCHICHTE
Zeitpunkt der Aenderung unbekannt.
explode(" ab cd ef ", " ") lieferte frueher ({ "ab", "cd", "ef" })
anstatt ({ "", "ab", "cd", "ef", "" }), d. h., leere Zeichenketten
wurden ignoriert. Das neue Verhalten ist schoener, da nun
implode(explode(str, del), del) == str immer wahr ist.
+ Seit 3.5.0 liefert explode("","") ({""}) zurueck, sodass garantiert
+ ist, dass ein nicht-leeres Array geliefert wird.
SIEHE AUCH
- sscanf(E), implode(E), regexplode(E)
+ sscanf(E), extract(E), implode(E), regexplode(E)
diff --git a/doc/efun/extern_call b/doc/efun/extern_call
index 03dca5f..b20bbf8 100644
--- a/doc/efun/extern_call
+++ b/doc/efun/extern_call
@@ -1,5 +1,5 @@
SYNOPSIS
- int extern_call();
+ int extern_call()
BESCHREIBUNG
Liefert 0, wenn die momentane ausgefuehrte Funktion durch eine lokale
@@ -8,5 +8,8 @@
Funktion in all diesen Faellen 1 zurueck, in Zukunft koennte
allerdings eine Unterscheidung der Aufrufe moeglich werden.
+GESCHICHTE
+ Eingefuehrt in 3.2@263 bzw. 3.2.1@12.
+
SIEHE AUCH
- call_other(E), previous_object(E)
\ No newline at end of file
+ call_other(E), previous_object(E)
diff --git a/doc/efun/filter_indices b/doc/efun/filter_indices
index 54fdadf..504effe 100644
--- a/doc/efun/filter_indices
+++ b/doc/efun/filter_indices
@@ -1,115 +1,27 @@
-filter_indices(E)
+VERALTET
+SYNOPSIS
+ mapping filter_indices(mapping map, string func, string|object ob,
+ mixed extra ... )
+ mapping filter_indices(mapping map, closure cl, mixed extra ... )
-FUNKTION:
- mapping filter_indices(mapping map, string fun, string|object ob
- [, mixed extra, ...])
- mapping filter_indices(mapping map, closure cl [, mixed extra, ...])
+BESCHREIBUNG
+ Die Funktion ob->func() bzw. die Closure cl wird fuer jedes Element
+ von <map> aufgerufen. Das erste Argument von func() ist dabei der Key
+ von <map>, die restlichen Argumente von func() sind die <extra>
+ Argumente. Die Werte von <extra> duerfen keine geschuetzten
+ Referenzen wie &(i[0]) enthalten.
-PARAMETER:
- map - zu filterndes Mapping
- fun/cl - zu rufende Methode/Closure
- ob - Objekt/Dateiname, an dem Methode gerufen werden soll
- extra - weitere Parameter fuer Methode/Closure
+ Wenn <func> TRUE liefert, wird das Element in das Resultat
+ uebernommen. Fuer <ob> kann man entweder ein Objekt oder den
+ Objektnamen uebergeben.
-BESCHREIBUNG:
- Filtert die Elemente (jeweils Schluessel) aus 'map' durch die
- Methode 'fun' oder die Closure 'cl' in ein neues Mapping.
- Fuer jedes Element aus 'map' wird 'fun' oder 'cl' mit dem Schluessel als
- erstem Parameter [und folgend den optionalen Extra-Parametern] gerufen.
+ Wird <ob> nicht angegeben oder weder ein String noch ein Objekt, so
+ wird standardmaessig this_object() verwendet.
- Wenn der Aufruf
- ob->fun(element [, extra1, extra2, ...]) bzw.
- funcall(cl, element [, extra1, extra2, ...])
- als Rueckgabewert !=0 zurueckgibt dann wird der Schluessel+Werte in das
- neue Array aufgenommen, sonst nicht.
+GESCHICHTE
+ In LDMud 3.2.6 umbenannt aus filter_mapping() und verallgemeinert in
+ der Efun filter().
- Wenn auf die Werte zugegriffen werden muss, kann das Mapping 'map'
- zusaetzlich als 'extra'-Parameter uebergeben werden. Alternativ kann man
- walk_mapping() benutzen und das Rueckgabemapping selbst erstellen.
-
-
- Verwendung von Methoden:
- Wenn bei der Angabe von 'fun' kein Objekt 'ob' in Form eines Strings
- oder Objekts angegeben wird, wird this_object() angenommen.
-
- Verwendung von Closures:
- Es koennen sowohl Lfun-Closures als auch Lambda-Closures verwendet
- werden. Lfun-Closures koennen, wenn im selben Objekt vorhanden auch
- 'private' oder/und 'static' deklariert sein, muessen aber zu dem
- Zeitpunkt der Verwendung bekannt sein (Funktionsprototypen benutzen).
-
-RUeCKGABEWERT:
- Gefiltertes Mapping mit Filterbedingung erfuellenden Elementen.
-
-BEMERKUNGEN:
- (1) Achtung, die Elemente in 'map' werden nicht tief kopiert, sind sie
- also selbst Arrays oder Mappings, so fuehrt eine spaetere Aenderung im
- Rueckgabe-Mapping zur Aenderung im Ursprungsmapping:
-
- mapping m,n;
- m=([1:({1,2}),0:({2,3,4})]);
- n=filter_indicdes(m, #'!); // filtert alle Keys !=0 heraus
- n[0][0]=8;
-
- fuehrt zu: n=([0:({8,3,4})])
- m=([0:({8,3,4}),1:({1,2})])
-
- (2) Das Kopieren in das Rueckgabemapping erfolgt fuer jedes Element nach
- Ausfuehrung der Filtermethode. Aenderungen der Werte im Mapping in dieser
- Methode (globale Variable/Uebergabe als Referenz an filter_indices)
- schlagen sich also im Rueckgabemapping nieder.
-
-BEISPIELE:
- ### erfundene Liste mit Spielern saeubern ... ###
- mapping x=([ [/human:liafar]: 20,
- [/dwarf:mesirii]: 50,
- [/elf:zarniya]: 40,
- [/feline:turbo]: 30]);
-
- int is_badguy(object who) {
- if(who->InFight()) return 1;
- return 0;
- }
-
- mapping result=filter_indices(x, #'is_badguy);
- // 'result' enthaelt nur noch kaempfende Spieler
-
- ### erfundene Liste ueber ihre Werte saeubern ###
- int is_badguy(object who, mapping m) {
- if(m[x]<30) return 1;
- return 0;
- }
-
- mapping result=filter_indices(x, #'is_badguy, &x); // Referenz
- // 'result' enthaelt nur Spieler mit Werten >= 30
-
-AeQUIVALENZCODE (nicht empfohlen, nur zum Verstaendnis!):
- int i, width;
- mapping ret; mapping input;
- mixed *index;
-
- width=get_type_info(input)[1];
- ret=m_allocate(0, width);
- index=m_indices(input);
- i=sizeof(index);
- while(i--)
- if(ob->fun(index[i] [, extra1, extra2, ...]))
- // if(funcall(cl, index[i] [, extra1, extra2, ...]))
- {
- int j;
- j=width;
-
- while(j--)
- ret[index[i],j]=input[index[i],j];
- }
-
-SIEHE AUCH:
- Arrays: filter(E), map(E)
- Objektarrays: filter_objects(E), map_objects(E)
- Mappings: map_indices(E)
-
- Sonstiges: walk_mapping(E), m_contains(E)
- member()
- m_indices(E), m_values(E)
-
-29.10.2006 Zesstra
+SIEHE AUCH
+ filter(E), map(E), map_indices(E), walk_mapping(E), member(E),
+ m_contains(E)
diff --git a/doc/efun/find_input_to b/doc/efun/find_input_to
index cb299c0..163637a 100644
--- a/doc/efun/find_input_to
+++ b/doc/efun/find_input_to
@@ -1,8 +1,8 @@
SYNOPSIS
- int find_input_to (object player, string fun);
- int find_input_to (object player, closure fun);
- int find_input_to (object player, object fun);
- int find_input_to (object player, object ob, string fun);
+ int find_input_to(object player, string fun)
+ int find_input_to(object player, closure fun)
+ int find_input_to(object player, object fun)
+ int find_input_to(object player, object ob, string fun)
BESCHREIBUNG
Findet den zuletzt fuer <player> gestarteten input_to(), abhaengig vom
@@ -18,8 +18,8 @@
die Position im input_to() Stack (wobei 0 den als letztes
hinzugefuegten input_to() bezeichnet).
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.9
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
input_to(E), input_to_info(E), remove_input_to(E),
diff --git a/doc/efun/find_object b/doc/efun/find_object
index 2a4f0d0..58e611a 100644
--- a/doc/efun/find_object
+++ b/doc/efun/find_object
@@ -1,23 +1,23 @@
-SYNOPSIS:
+SYNOPSIS
object find_object(string str)
-DESCRIPTION:
- Find an object with the object_name str. If the object isn't loaded,
- it will not be found.
+BESCHREIBUNG
+ Liefert das Objekt mit dem Namen <str>. Wenn das Objekt nicht
+ geladen ist, wird es nicht gefunden.
-EXAMPLE:
+BEISPIELE
object obj;
obj = find_object("std/thing");
obj = find_object("std/thing.c");
obj = find_object("/std/thing");
obj = find_object("/std/thing.c");
-
- All four statements are equal.
- obj = find_object("/std/thing#42");
+ Alle vier Zeilen sind gleichwertig.
- returns the clone whose object_name is "std/thing#42", if
- it exists.
+ obj = find_object("/std/thing#42");
-SEE ALSO:
- find_living(E), find_player(E), object_name(E)
+ Liefert den Clone, dessen object_name "std/thing#42" ist, wenn er
+ existiert.
+
+SIEHE AUCH
+ object_name(E), to_object(E)
diff --git a/doc/efun/first_inventory b/doc/efun/first_inventory
index 99be7fd..d571d8c 100644
--- a/doc/efun/first_inventory
+++ b/doc/efun/first_inventory
@@ -1,7 +1,7 @@
SYNOPSIS
- object first_inventory();
- object first_inventory(string ob);
- object first_inventory(object ob);
+ object first_inventory()
+ object first_inventory(string ob)
+ object first_inventory(object ob)
BESCHREIBUNG
Liefert das erste Objekt im Inventory von <obj>, wobei <obj> entweder
@@ -16,6 +16,19 @@
<irgendwelcher Code>
}
+ Wer solche Aufrufe haeufig verwendet, findet es moeglicherweise
+ sinnvoll, ein Praeprozessor-Makro zu verwenden:
+
+ #define FORALL(x, y) for(x=first_inventory(y);x;
+ x=next_inventory(x))
+
+ Damit vereinfacht sich das obige Beispiel zu:
+
+ FORALL(obj, container)
+ {
+ <irgendwelcher Code>
+ }
+
ACHTUNG: Wenn das Objekt <obj> innerhalb von <irgendwelcher Code>
bewegt wird, liefert next_inventory() ein Objekt aus dem neuen
Inventory von <obj>. Auch sollte next_inventory() nicht fuer
diff --git a/doc/efun/floatp b/doc/efun/floatp
index 109cace..43fe9ba 100644
--- a/doc/efun/floatp
+++ b/doc/efun/floatp
@@ -6,5 +6,5 @@
ansonsten 0.
SIEHE AUCH
- intp(E), mappingp(E), stringp(E), closurep(E), objectp(E),
- referencep(E), pointerp(E), symbolp(E), clonep(E)
+ intp(E), mappingp(E), stringp(E), bytesp(E), closurep(E),
+ objectp(E), referencep(E), pointerp(E), symbolp(E), clonep(E)
diff --git a/doc/efun/floor b/doc/efun/floor
index e7b85e6..9599a16 100644
--- a/doc/efun/floor
+++ b/doc/efun/floor
@@ -1,5 +1,5 @@
SYNOPSIS
- float floor(float arg);
+ float floor(float arg)
BESCHREIBUNG
Rundet das Argument <arg> ab auf die naechste ganze Zahl und gibt
@@ -11,7 +11,7 @@
floor(-4.5) --> liefert -5.0
floor(5) --> liefert 5.0
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.7.
LDMud 3.2.9 erlaubt auch Integer als Argumente.
diff --git a/doc/efun/funcall b/doc/efun/funcall
index 6bb9833..e507ad6 100644
--- a/doc/efun/funcall
+++ b/doc/efun/funcall
@@ -1,10 +1,15 @@
SYNOPSIS
- mixed funcall(closure cl, mixed arg, ...);
+ mixed funcall(closure cl, mixed arg, ...)
BESCHREIBUNG
- Wertet die Closure 'cl' aus. Die Argumente 'args' werden als Argumente
- an die Closure uebergeben. Wenn 'cl' keine Closure ist, wird 'cl'
+ Wertet die Closure <cl> aus. Die Argumente <args> werden als Argumente
+ an die Closure uebergeben. Wenn <cl> keine Closure ist, wird <cl>
zurueck gegeben.
+GESCHICHTE
+ Eingefuehrt in 3.2@70.
+ Das Zurueckgeben von <cl>, wenn es sich nicht um eine Closure handelt,
+ auch wenn Argumente angegeben wurden, wurde in 3.2.1 eingefuehrt.
+
SIEHE AUCH
apply(E), quote(E)
diff --git a/doc/efun/function_exists b/doc/efun/function_exists
index 43f2da2..c521360 100644
--- a/doc/efun/function_exists
+++ b/doc/efun/function_exists
@@ -1,14 +1,60 @@
SYNOPSIS
- string function_exists(string str, object ob)
+ #include <functionlist.h>
-DESCRIPTION
- Return the file name of the object that defines the function
- str in object ob. The returned value can be other than
- object_name(ob) if the function is defined in an inherited
- object. In !compat mode, the returned name always begins with a
- '/' (absolute path). 0 is returned if the function was not
- defined, or was defined as static (protected function on the
- other hand are found).
+ mixed function_exists(string str)
+ mixed function_exists(string str, int flags)
+ mixed function_exists(string str, object ob)
+ mixed function_exists(string str, object ob, int flags)
-SEE ALSO
- call_other(E), call_resolved(E), functionlist(E)
+BESCHREIBUNG
+ Sucht eine Funktion <str> im aktuellen Objekt bzw. im Objekt <ob>. Je
+ nach den angegeben <flags> werden folgende Informationen angezeigt:
+
+ FEXISTS_PROGNAME (0, default):
+ Liefert den Namen des Programms, in dem die Funktion definiert ist.
+ Das kann entweder der Objektname object_name(ob) sein, oder der
+ Name eines geerbten Programms. Wenn der Driver nicht im Compat-Modus
+ laeuft, beginnt der Name immer mit einem '/'.
+
+ FEXISTS_FILENAME (1):
+ Liefert den Namen der Datei, in der die Funktion definiert ist. Das
+ kann auch ein Inlcude-File sein. Wenn der Driver nicht im Compat-
+ Modus laeuft, beginnt der Name mit einem '/'.
+
+ FEXISTS_LINENO (2):
+ Liefert die Zeilennummer im Quellcode, in der die Funktion definiert
+ wird.
+
+ FEXISTS_ALL (3):
+ Liefert ein Array mit der gesamten Information der anderen Flags,
+ sowie zusaetzlichen Informationen ueber die Funktion:
+
+ string [FEXISTS_PROGNAME]: der Programmname
+ string [FEXISTS_FILENAME]: der Dateiname
+ int [FEXISTS_LINENO]: die Zeilennummer
+ int [FEXISTS_NUMARG]: die Anzahl der Funktionsargumente
+ int [FEXISTS_TYPE]: der Ergebnistyp der Funktion
+ int [FEXISTS_FLAGS]: die Funktionsflags
+
+ <flags> kann mit einem binaren Oder mit NAME_HIDDEN ergaenzt
+ werden, um Informationen ueber als static und protected deklarierte
+ Funktionen in anderen Objekten zu erhalten. Es ist nicht moeglich,
+ Informationen ueber als private deklarierte Funktionen zu erhalten.
+
+ Wenn die gesuchte Funktion nicht gefunden werden kann (weil sie
+ nicht existiert oder fuer den Aufrufer nicht sichtbar ist), dann
+ wird als Rueckgabewert 0 geliefert.
+
+
+BEISPIELE
+ function_exists("create");
+ function_exists("create", that_object, NAME_HIDDEN|FEXISTS_ALL);
+
+GESCHICHTE
+ LDMud 3.2.10 erweiterte die Menge der zurueck gelieferten Werte und
+ fuehrte das <flags> Argument ein.
+ LDMud 3.2.12/3.3.713 fuegte die zusaetzliche Funktionsinformation zum
+ FEXISTS_ALL Ergebnis hinzu.
+
+SIEHE AUCH
+ call_other(E), call_resolved(E), functionlist(E), variable_exists(E)
diff --git a/doc/efun/functionlist b/doc/efun/functionlist
index 46f2cba..63ecdc1 100644
--- a/doc/efun/functionlist
+++ b/doc/efun/functionlist
@@ -1,9 +1,9 @@
GESCHUETZT
SYNOPSIS
- #include <sys/functionlist.h>
- #include <sys/lpctypes.h>
+ #include <functionlist.h>
+ #include <lpctypes.h>
- mixed *functionlist(object ob, int flags = RETURN_FUNCTION_NAME)
+ mixed * functionlist(object ob, int flags)
BESCHREIBUNG
Liefert ein Array mit Informationen zu den Lfuns von <ob>. Fuer jede
@@ -11,7 +11,7 @@
eingetragen, und zwar in folgender Reihenfolge:
- der Name der Funktion
- die Flags der Funktion (vergleiche weiter unten)
- - den Rueckgabetyp (aufgelistet in mudlib/sys/lpctypes.h)
+ - den Rueckgabetyp (aufgelistet in <lpctypes.h>)
- die Anzahl Argumente, die die Funktion akzeptiert.
<ob> kann als echtes Objekt oder als Objektname uebergeben werden. Im
@@ -20,11 +20,11 @@
<flags> bestimmt sowohl, welche Informationen im Ergebnis gesammelt
werden, als auch, fuer welche Funktionen die Pruefung durchgefuehrt
wird. Der Wert von <flags> wird durch binaere Veroderung folgender
- Konstanten aus mudlib/sys/functionlist.h festgelegt:
+ Konstanten aus <functionlist.h> festgelegt:
Festlegen der gesammelten Information:
RETURN_FUNCTION_NAME liefert den Funktionsnamen
- RETURN_FUNCTION_FLAGS liefert die Flas der Funktion
+ RETURN_FUNCTION_FLAGS liefert die Flags der Funktion
RETURN_FUNCTION_TYPE liefert den Rueckgabetyp der Funktion
RETURN_FUNCTION_NUMARG liefert die Anzahl moeglicher
Argumente.
diff --git a/doc/efun/garbage_collection b/doc/efun/garbage_collection
index 5c6a738..86a87c4 100644
--- a/doc/efun/garbage_collection
+++ b/doc/efun/garbage_collection
@@ -1,7 +1,7 @@
GESCHUETZT
SYNOPSIS
- void garbage_collection();
- void garbage_collection(string filename);
+ void garbage_collection()
+ void garbage_collection(string filename)
BESCHREIBUNG
Befiehlt dem Treiber, nach Ende der aktuellen Ausfuehrung eine
@@ -18,5 +18,12 @@
Fuer andere Memory Allocators erzeugt garbage_collection() keinen
Output. Ein allfaelliges Argument <filename> wird ignoriert.
+ Diese efun verursacht den Aufruf von privilege_violation().
+
+GESCHICHTE
+ LDMud 3.2.9 fuehrte das Argument <filename> ein.
+ LDMud 3.3.209 fuehrte das Argument <flag> ein.
+ LDMud 3.5.0 machte die efun privilegiert.
+
SIEHE AUCH
- rusage(E), valid_write(M)
+ rusage(E), valid_write(M), privilege_violation(M)
diff --git a/doc/efun/get_dir b/doc/efun/get_dir
index b14288a..d0bdf5a 100644
--- a/doc/efun/get_dir
+++ b/doc/efun/get_dir
@@ -1,8 +1,8 @@
SYNOPSIS
#include <files.h>
- mixed *get_dir(string str)
- mixed *get_dir(string str, int mask)
+ mixed * get_dir(string str)
+ mixed * get_dir(string str, int mask)
BESCHREIBUNG
Benoetigt einen Pfad als erstes Argument und liefert ein Feld
@@ -57,6 +57,14 @@
Die Eintraege in der Bitmaske koennen miteinander kombiniert
werden.
+ANMERKUNGEN
+ Der als Argument angegebene Pfad wird vor Benutzung von valid_read()
+ im Master der Mudlib verarbeitet. Hierbei kann die Mudlib eine
+ Normalisierung vornehmen (z.B. fuehrende und endstaendige "/"
+ entfernen). Dann fuehrt dann u.U. zu erwarteten Resultaten (z.B. dass
+ get_dir("/dir/", ...) nicht den Inhalt von /dir/ zurueckgibt).
+ Compat mode: GETDIR_PATH liefert die Pfade ohne fuehrenden /.
+
BEISPIELE
Funktion Rueckgabewert
-------------------------------------------------------------------
@@ -64,8 +72,8 @@
/obj enthalten sind.
get_dir("/obj/") Wie get_dir("/obj/").
- get_dir("/obj/fackel.c") ({ "fackel.c" }), sofern
- /obj/fackel.c existiert (als
+ get_dir("/obj/schwert.c") ({ "schwert.c" }), sofern
+ /obj/schwert.c existiert (als
Datei oder Verzeichnis), ansonsten
({}), sofern /obj ein Verzeichnis
ist, ansonsten 0.
@@ -77,9 +85,9 @@
Verzeichnisse in /obj, sofern /obj
ein Verzeichnis ist, ansonsten 0.
- get_dir("/obj/fackel.c", GETDIR_SIZES)
- ({ <Groesse von /obj/fackel.c> }),
- sofern /obj/fackel.c existiert.
+ get_dir("/obj/schwert.c", GETDIR_SIZES)
+ ({ <Groesse von /obj/schwert.c> }),
+ sofern /obj/schwert.c existiert.
get_dir("/obj/.", GETDIR_NAMES) Wie get_dir("/obj/.").
get_dir("/obj/.", GETDIR_SIZES) Ein unsortiertes Feld mit den
Groessen der Dateien in /obj.
@@ -90,24 +98,30 @@
jede Datei in /obj den Namen, die
Groesse und den Zeitpunkt der
letzten Aenderung enthaelt, z.B.
- ({
- "axt.c" , 927, 994539583,
- "fackel.c", 1283, 998153903,
- }).
+ ({
+ "axt.c" , 927, 994539583,
+ "schwert.c", 1283, 998153903,
+ }).
- get_dir("/obj/fackel.c", GETDIR_NAMES|GETDIR_PATH)
- ({ "/obj/fackel.c" }), sofern
+ get_dir("/obj/schwert.c", GETDIR_NAMES|GETDIR_PATH)
+ ({ "/obj/sword.c" }), sofern
vorhanden.
- get_dir("/obj/fackel.c", GETDIR_PATH) Kurzform dafuer.
+ get_dir("/obj/schwert.c", GETDIR_PATH) Kurzform dafuer.
transpose_array(({ get_dir(str, GETDIR_NAMES|GETDIR_UNSORTED)
, get_dir(str, GETDIR_SIZES)
, get_dir(str, GETDIR_DATES) }));
Liefert ein unsortiertes Feld mit Feldern, von denen ein jedes
Name, Groesse und Zeit einer Datei enthaelt, z. B.
- ({
- ({ "fackel.c", 1283, 998153903 }),
- ({ "axt.c" , 927, 994539583 }),
- }).
+ ({
+ ({ "schwert.c", 1283, 998153903 }),
+ ({ "axt.c" , 927, 994539583 }),
+ }).
+
+GESCHICHTE
+ LDMud 3.2.9: GETDIR_PATH eingefuehrt.
+ LDMud 3.2.11: GETDIR_ACCESS und GETDIR_MODES eingefuehrt.
+
SIEHE AUCH
- cat(E), mkdir(E), rmdir(E), file_size(E)
+ mkdir(E), rmdir(E), file_size(E), write_file(E), write_bytes(E),
+ read_file(E), read_bytes(E)
diff --git a/doc/efun/get_error_file b/doc/efun/get_error_file
index 797e523..d97a1a5 100644
--- a/doc/efun/get_error_file
+++ b/doc/efun/get_error_file
@@ -1,21 +1,21 @@
SYNOPSIS
mixed * get_error_file(string name, int set_forget_flag)
-DESCRIPTION
- Return information about the last error which occured for
- <name> (where <name> is a valid name from the wiz list).
+BESCHREIBUNG
+ Liefert Informationen ueber den letzten Fehler, der fuer <name>
+ aufgetreten ist, wobei <name> ein gueltiger Eintrag in der Wizlist
+ sein muss.
- Result is an array of four elements: the filename of the
- program where the error occured, the linenumber in the
- program, the error message (runtime error messages usually
- start with a '*'), and a numerical flag (the 'forget flag') if
- the error information has been queried already.
+ Das Resultat ist ein Array aus vier Elementen: der Dateiname des
+ Programms, in dem der Fehler aufgetreten ist, die Zeilennummer in der
+ Datei, die Fehlermeldung (Laufzeitfehler beginnen gewoehnlich mit
+ einem *) und ein numerisches Flag (das 'forget flag'), wenn der
+ Fehler bereits angeschaut wurde.
- If there is no error stored for the given <name>, 0 is
- returned.
+ Wenn es keinen Fehler fuer <name> gibt, wird 0 zurueckgegeben.
- If <set_forget_flag> is non-zero, the 'forget' flag is set
- for the error message after it has been returned.
+ Wenn <set_forget_flag> ungleich 0 ist, wird das 'forget flag' gesetzt,
+ nachdem die Fehlermeldung ausgegeben wurde.
-SEE ALSO
+SIEHE AUCH
ed(E), valid_read(M)
diff --git a/doc/efun/get_extra_wizinfo b/doc/efun/get_extra_wizinfo
index c356fba..757d9cf 100644
--- a/doc/efun/get_extra_wizinfo
+++ b/doc/efun/get_extra_wizinfo
@@ -1,19 +1,16 @@
+GESCHUETZT
SYNOPSIS
- mixed get_extra_wizinfo (object wiz)
- mixed get_extra_wizinfo (string wiz)
- mixed get_extra_wizinfo (int wiz)
+ mixed get_extra_wizinfo(object|string|int wiz)
-DESCRIPTION
- Returns the 'extra' information that was set for the given
- wizard <wiz> in the wizlist.
+BESCHREIBUNG
+ Liefert die <extra> Information, die in der Wizlist fuer den
+ angegebenen Gott <wiz> angegeben wurde.
- If <wiz> is an object, the entry of its creator (uid) is used.
- If <wiz> is a string (a creator aka uid), it names the entry
- to use.
- If <wiz> is the number 0, the data is get from the default wizlist
- entry.
+ Ist <wiz> ein Objekt, so wird der Eintrag des Erzeugers (UID)
+ verwendet.
+ Ist <wiz> ein String (ein Erzeuger oder eine UID), so bezeichnet er
+ den Namen des Eintrags in der Wizlist, der gelesen werden soll.
+ Ist <wiz> 0, wird der Standardeintrag aus der Wizlist genommen.
- The function causes a privilege violation.
-
-SEE ALSO
+SIEHE AUCH
wizlist_info(E), set_extra_wizinfo(E)
diff --git a/doc/efun/get_type_info b/doc/efun/get_type_info
index 81b1f8b..09e1e4e 100644
--- a/doc/efun/get_type_info
+++ b/doc/efun/get_type_info
@@ -1,5 +1,5 @@
SYNOPSIS
- mixed get_type_info(mixed arg, int flag);
+ mixed get_type_info(mixed arg, int flag)
BESCHREIBUNG
Liefert Informationen uber den Typ von <arg>, wie von <flag>
@@ -37,14 +37,14 @@
- fuer structs der eindeutige Identifizierungsstring
- -1 fuer alle anderen Datentypen
-BUGS
+FEHLER
Diese Funktion unterliegt haeufigen Veraenderungen im Zug der
Treiberentwicklung.
-AENDERUNGEN
- Eingefuehrt in 3.2@127
- Flagwert 2 eingefuehrt in 3.2.1@84
- Zusatzinformationen zu Strings eingefuehrt in 3.2.7
+GESCHICHTE
+ Eingefuehrt in 3.2@127.
+ Flagwert 2 eingefuehrt in 3.2.1@84.
+ Zusatzinformationen zu Strings eingefuehrt in 3.2.7.
Bis und mit 3.2.7 lieferte get_type_info(closure, 2) keine Objekte
von Lamda Closures und gebundenen Lambda Closures.
Bis und mit 3.2.7 lieferte get_type_info(closure, 2) keine Objekte von
diff --git a/doc/efun/geteuid b/doc/efun/geteuid
index 75cc3d1..0af0cbc 100644
--- a/doc/efun/geteuid
+++ b/doc/efun/geteuid
@@ -1,12 +1,17 @@
SYNOPSIS
- string geteuid(object ob);
+ string geteuid(object ob)
BESCHREIBUNG
Liefert die effektive User-ID des Objekts <obj> (normalerweise ein
- Magier oder eine Domain). Objekte, die durch <obj> geclonet werden,
+ Gott oder eine Domain). Objekte, die durch <obj> geclonet werden,
erhalten diese User-ID. Die effektive User-ID wird auch fuer
Zugriffschecks verwendet. Wenn <obj> nicht angegeben wird, wird
standardmaessig this_object() verwendet.
+GESCHICHTE
+ Seit 3.2.1@47 war diese Efun nur verfuegbar, wenn EUIDs verwendet
+ wurden.
+ Seit 3.2.7 ist diese Efun immer verfuegbar.
+
SIEHE AUCH
- seteuid(E), getuid(E), getuuid(E), export_uid(E)
\ No newline at end of file
+ getuid(E), configure_object(E)
diff --git a/doc/efun/getuid b/doc/efun/getuid
index bf38fe8..08679cd 100644
--- a/doc/efun/getuid
+++ b/doc/efun/getuid
@@ -1,17 +1,16 @@
SYNOPSIS
- string getuid(object ob);
+ string getuid(object ob)
BESCHREIBUNG
- User-IDs werden im Compat Modus nicht verwendet.
-
- Die Funktion liefert die UID des Objekts, also den Namen des Magiers
+ User-IDs werden im COMPAT-Modus nicht verwendet.
+ Die Funktion liefert die UID des Objekts, also den Namen des Gottes
oder der Domain oder Gruppe, die fuer das Objekt verantwortlich ist.
Der Name entspricht dem Namen, der in der Wizlist verwendet wird.
Wird <ob> nicht angegeben, wird standardmaessig this_object()
genommen.
-AENDERUNGEN
- Seit 3.2.1@47 ist diese Efun ein Alias fuer creator()
+GESCHICHTE
+ Seit 3.2.1@47 ist diese Efun ein Alias fuer creator().
SIEHE AUCH
- seteuid(E), geteuid(E), export_uid(E), creator(E), getuuid(E)
+ geteuid(E), configure_object(E), creator(E)
diff --git a/doc/efun/gmtime b/doc/efun/gmtime
index ab12eff..ff0303f 100644
--- a/doc/efun/gmtime
+++ b/doc/efun/gmtime
@@ -1,8 +1,8 @@
SYNOPSIS
- #include <sys/time.h>
+ #include <time.h>
- int *gmtime(int clock);
- int *gmtime(int *uclock);
+ int * gmtime(int clock)
+ int * gmtime(int *uclock)
BESCHREIBUNG
Interpretiert <clock> als Anzahl Sekunden seit dem 01. Januar 1970,
@@ -11,7 +11,7 @@
Alternativ kann auch ein Array mit zwei Elementen angegeben werden,
wie es von uclock() geliefert wird: das erste Element wird
- interpretiert wie <clock>, das zweite Element bezeichnet die
+ wie <clock> interpretiert, das zweite Element bezeichnet die
Mikrosekunden in der aktuellen Sekunde. Dieses zweite Element wird
ignoriert.
@@ -26,13 +26,13 @@
int TM_YDAY (7) : Tag im Jahr (0..365)
int TM_ISDST (8) : TRUE: Daylight saving time
-BEISPIEL
+BEISPIELE
printf("Heute ist %s\n", ({ "Sonntag", "Montag", "Dienstag",
"Mittwoch", "Donnerstag", "Freitag", "Samstag"})
[gmtime()[TM_WDAY]]);
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
- ctime(E), localtime(E), time(E), utime(E)
+ ctime(E), localtime(E), time(E), utime(E)
diff --git a/doc/efun/hash b/doc/efun/hash
index e3457c1..72b432a 100644
--- a/doc/efun/hash
+++ b/doc/efun/hash
@@ -1,13 +1,16 @@
SYNOPSIS
- #include <sys/tls.h>
+ #include <tls.h>
string hash(int method, string arg [, int iterations ] )
+ string hash(int method, bytes arg [, int iterations ] )
string hash(int method, int * arg [, int iterations ] )
BESCHREIBUNG
Berechne den Hash <method> vom Argument <arg>. Der Hash wird
mit <iterations> Wiederholungen berechnet, wird der Wert weggelassen,
- wird eine Wiederholung verwendet.
+ wird eine Wiederholung verwendet. Falls ein String als <arg>
+ uebergeben wurde, so wird dieser in eine UTF-8-Bytefolge konvertiert
+ und davon der Hash berechnet.
<method> ist eine der TLS_HASH_-Konstanten in tls.h; nicht jede
beschriebene Methode ist in einem gegebenen Driver vorhanden:
@@ -20,8 +23,11 @@
TLS_HASH_MD5 (6)
TLS_HASH_RIPEMD160 (7)
- Diese Funktion ist nur verfuegbar wenn der Driver mit OpenSSL
- compiliert wurde.
+ Wenn der Driver ohne OpenSSL- oder GCrypt-Unterstuetzung compiliert
+ wurde, sind nur TLS_HASH_SHA1 und TLS_HASH_MD5 verfuegbar.
+
+ Jede Iteration kostet 10 Evalution-Ticks.
+
BEISPIELE
string s;
@@ -30,7 +36,8 @@
s = hash(TLS_HASH_SHA1, ({ 'H', 'e', 'l', 'l', 'o' }) )
GESCHICHTE
- Eingefuehrt in LDMud 3.3.714
+ Eingefuehrt in LDMud 3.3.714.
+ LDMud 3.3.719 fuehrte die iterationsbasierten Evaluationskosten ein.
SIEHE AUCH
crypt(E), md5(E), md5_crypt(E), sha1(E), hmac(E)
diff --git a/doc/efun/heart_beat_info b/doc/efun/heart_beat_info
index dee8d52..a640b2c 100644
--- a/doc/efun/heart_beat_info
+++ b/doc/efun/heart_beat_info
@@ -1,5 +1,5 @@
SYNOPSIS
- object *heart_beat_info()
+ object * heart_beat_info()
BESCHREIBUNG
Resultat ist ein Array mit allen Objekten, die einen aktiven
diff --git a/doc/efun/hmac b/doc/efun/hmac
index d41d6d5..1c712fa 100644
--- a/doc/efun/hmac
+++ b/doc/efun/hmac
@@ -1,12 +1,17 @@
SYNOPSIS
- #include <sys/tls.h>
+ #include <tls.h>
string hmac(int method, string key, string arg )
+ string hmac(int method, string key, bytes arg )
string hmac(int method, string key, int * arg )
+ string hmac(int method, bytes key, string arg )
+ string hmac(int method, bytes key, bytes arg )
+ string hmac(int method, bytes key, int * arg )
BESCHREIBUNG
Berechnet den Hashed Message Authenication Code fuer <arg>
- nach Methode <method> und fuer das Password <key>.
+ nach Methode <method> und fuer das Password <key>. Strings
+ werden zuvor in eine UTF-8-Bytefolge konvertiert.
<method> ist eine der TLS_HASH_-Konstanten in tls.h; nicht jede
beschriebene Methode ist in einem gegebenen Driver vorhanden:
@@ -19,8 +24,9 @@
TLS_HASH_MD5 (6)
TLS_HASH_RIPEMD160 (7)
- Diese Funktion ist nur verfuegbar wenn der Driver mit OpenSSL
- compiliert wurde.
+ Wenn der Driver ohne OpenSSL- oder GCrypt-Unterstuetzung compiliert
+ wurde, erzeugt diese Funktion einen Fehler.
+
BEISPIELE
string s;
diff --git a/doc/efun/idna_stringprep b/doc/efun/idna_stringprep
index 7001140..5ec1a44 100644
--- a/doc/efun/idna_stringprep
+++ b/doc/efun/idna_stringprep
@@ -1,22 +1,22 @@
OPTIONAL
SYNOPSIS
- #include <sys/idn.h>
+ #include <idn.h>
- string idna_stringprep (string str, int profile, int flags = 0)
+ string idna_stringprep(string str, int profile, int flags)
BESCHREIBUNG
- Prepariere den UTF-8 String <str> passend zum Profil <profile>
+ Prepariere den UTF-8-String <str> passend zum Profil <profile>
(siehe auch libidn stringprep(3)).
- <profile> und <flags> sind definiert in idn.h .
+ <profile> und <flags> sind definiert in <idn.h>.
Sollte ein Fehler auftreten, wird eine Exception geworfen.
- Diese Efun is nur verfuegbar auf Systemen mit libidn
- installiert - in diesem Fall ist das Makro __IDNA__ definiert.
+ Diese Efun is nur auf Systemen mit einer installierten libidn
+ verfuegbar -- in diesem Fall ist das Makro __IDNA__ definiert.
GESCHICHTE
Introduced in LDMud 3.3.713.
SIEHE AUCH
- convert_charset(E), idna_to_ascii(E), idna_to_unicode(E)
+ idna_to_ascii(E), idna_to_unicode(E)
diff --git a/doc/efun/idna_to_ascii b/doc/efun/idna_to_ascii
index 63c66b9..3d6236e 100644
--- a/doc/efun/idna_to_ascii
+++ b/doc/efun/idna_to_ascii
@@ -1,20 +1,20 @@
OPTIONAL
SYNOPSIS
- #include <sys/idn.h>
+ #include <idn.h>
- string idna_to_ascii (string name)
+ string idna_to_ascii(string name)
BESCHREIBUNG
- Wandle den String <name> von UTF-8 to IDNA Darstellung (8z
- punycode).
+ Wandelt den String <name> von UTF-8 to IDNA Darstellung
+ (8z punycode).
Sollte ein Fehler auftreten, wird eine Exception geworfen.
- Diese Efun is nur verfuegbar auf Systemen mit libidn
- installiert - in diesem Fall ist das Makro __IDNA__ definiert.
+ Diese Efun is nur auf Systemen mit installierter libidn
+ verfuegbar - in diesem Fall ist das Makro __IDNA__ definiert.
GESCHICHTE
Introduced in LDMud 3.3.713.
SIEHE AUCH
- convert_charset(E), idna_to_unicode(E), idna_stringprep(E)
+ idna_to_unicode(E), idna_stringprep(E)
diff --git a/doc/efun/idna_to_unicode b/doc/efun/idna_to_unicode
index 183dce8..23f6f9c 100644
--- a/doc/efun/idna_to_unicode
+++ b/doc/efun/idna_to_unicode
@@ -1,8 +1,8 @@
OPTIONAL
SYNOPSIS
- #include <sys/idn.h>
+ #include <idn.h>
- string idna_to_unicode (string name)
+ string idna_to_unicode(string name)
BESCHREIBUNG
Wandle den String <name> von IDNA Darstellung (8z punycode)
@@ -10,11 +10,11 @@
Sollte ein Fehler auftreten, wird eine Exception geworfen.
- Diese Efun is nur verfuegbar auf Systemen mit libidn
- installiert - in diesem Fall ist das Makro __IDNA__ definiert.
+ Diese Efun is nur auf Systemen mit installierter libidn
+ verfuegbar - in diesem Fall ist das Makro __IDNA__ definiert.
GESCHICHTE
Introduced in LDMud 3.3.713.
SIEHE AUCH
- convert_charset(E), idna_to_ascii(E), idna_stringprep(E)
+ idna_to_ascii(E), idna_stringprep(E)
diff --git a/doc/efun/implode b/doc/efun/implode
index 85a723b..6d11762 100644
--- a/doc/efun/implode
+++ b/doc/efun/implode
@@ -1,11 +1,13 @@
SYNOPSIS
string implode(mixed *arr, string del)
+ bytes implode(mixed *arr, bytes del)
BESCHREIBUNG
Setzt alle Zeichenketten (Strings) aus dem Feld (Array) arr zu
einer Zeichenkette zusammen und fuegt dabei die Zeichenkette del
zwischen je zwei Elementen ein. Elemente aus dem Feld arr, welche
- keine Zeichenketten sind, werden ignoriert.
+ keine Zeichenketten sind, werden ignoriert. Mit Bytefolgen wird
+ analog verfahren.
BEISPIELE
Funktion Rueckgabewert
@@ -18,8 +20,8 @@
implode(explode("a short text", " "), "_") "a_short_text"
Heutzutage kann man stattdessen auch
- regreplace("a short text", " ", "_", 1)
+ regreplace("a short text", " ", "_", 1)
verwenden.
SIEHE AUCH
- explode(E)
+ explode(E), regreplace(E)
diff --git a/doc/efun/include_list b/doc/efun/include_list
index cc44fa9..46c5c4c 100644
--- a/doc/efun/include_list
+++ b/doc/efun/include_list
@@ -1,9 +1,9 @@
SYNOPSIS
- #include <sys/include_list.h>
+ #include <include_list.h>
- string *include_list();
- string *include_list(object ob);
- string *include_list(object ob, int flags);
+ string * include_list()
+ string * include_list(object ob)
+ string * include_list(object ob, int flags)
BESCHREIBUNG
Diese Funktion liefert Informationen ueber alle Dateien, die bei der
@@ -38,7 +38,7 @@
in [i+0], [i+1] und [i+2] sind 0). Diese Untervektoren haben
die gleiche Struktur wie das Resultatarray.
- Wenn ein Objekt, inklusive <ob>, einem replace_programm() unterworfen
+ Wenn ein Objekt inklusive <ob> einem replace_program() unterworfen
war, spiegeln die gelieferten Dateinamen das effektiv aktive Programm
wider.
@@ -47,7 +47,8 @@
Trotzdem beginnt der tatsaechliche Dateiname nicht mit einem '/',
wenn der Treiber im COMPAT Modus laeuft.
-BEISPIEL
+
+BEISPIELE
Dieser Code erzeugt (mit /sys als Includeverzeichnis des Systems):
a.c: #include "b.h"
@@ -73,8 +74,8 @@
, "<c.h>", "/sys/c.h", 1
})
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.9, 3.3.128
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.9, 3.3.128.
SIEHE AUCH
debug_info(E), inherit_list(E)
diff --git a/doc/efun/inherit_list b/doc/efun/inherit_list
index 97c738e..b17e5b0 100644
--- a/doc/efun/inherit_list
+++ b/doc/efun/inherit_list
@@ -1,9 +1,9 @@
SYNOPSIS
- #include <sys/inherit_list.h>
+ #include <inherit_list.h>
- string *inherit_list();
- string *inherit_list(object ob);
- string *inherit_list(object ob, int flags);
+ string * inherit_list()
+ string * inherit_list(object ob)
+ string * inherit_list(object ob, int flags)
BESCHREIBUNG
Liefert die Namen von allen Dateien, die von <ob> geerbt werden,
@@ -30,14 +30,15 @@
Alle Flags koennen mit einem binaeren Oder | verbunden werden, wobei
INHLIST_FLAT und INHLIST_TREE sich gegenseitig ausschliessen.
- Wenn ein Objekt, inklusive <ob>, einem replace_programm() unterworfen
+ Wenn ein Objekt inklusive <ob> einem replace_program() unterworfen
war, spiegeln die gelieferten Dateinamen das effektiv aktive Programm
wider.
Die Inheritpfade, die geliefert werden, beginnen immer mit '/'
(absolute Pfade), auch wenn der Treiber im COMPAT Modus laeuft.
-BEISPIEL
+
+BEISPIELE
Gegeben folgende Vererbungsstruktur:
/ c - d
@@ -51,7 +52,7 @@
inherit_list(a, 1) -> ({ "a", ({ "c", "d" }), "b" })
inherit_list(a, 3) -> ({ " a", ({ " c", "v d" }), " b" })
-AENDERUNGEN
+GESCHICHTE
Vor 3.2.8, begannen die gelieferten Namen niemals mit einem '/'.
LDMud 3.2.9 fuehrte die Baumstruktur (_TREE) und Tags fuer virtuelle
Inherits ("v ") ein.
diff --git a/doc/efun/input_to b/doc/efun/input_to
index 11cbd97..87748d5 100644
--- a/doc/efun/input_to
+++ b/doc/efun/input_to
@@ -1,9 +1,9 @@
SYNOPSIS
- #include <sys/input_to.h>
+ #include <input_to.h>
- void input_to(string|closure fun);
- void input_to(string|closure fun, int flag, ...);
- void input_to(string|closure fun, int flag, string|closure prompt, ...);
+ void input_to(string|closure fun)
+ void input_to(string|closure fun, int flag, ...)
+ void input_to(string|closure fun, int flag, string|closure prompt, ...)
BESCHREIBUNG
Die naechste Zeile, die der Spieler eintippt, wird als Argument an die
@@ -82,16 +82,16 @@
input_tos angehaengt.
INPUT_IGNORE_BANG (128):
- Eingaben, die mit ! beginnen, werden NICHT als Kommandi geparset,
+ Eingaben, die mit ! beginnen, werden NICHT als Kommandos geparst,
sondern auch als Argument an die Funkion <fun> uebergeben. Die
Verwendung dieses Flags ist eingeschraenkt.
Alle nachfolgenden Argumente werden als zweites bzw. drittes usw.
Argument an <fun> uebergeben.
-BEISPIEL
- void func()
- {
+
+BEISPIELE
+ void func() {
...
input_to("enter_name", INPUT_PROMPT, "Wie lautet dein Name?:");
/* Frueher erledigte man dies mit:
@@ -101,8 +101,7 @@
...
}
- enter_name(string str)
- {
+ void enter_name(string str) {
write("Heisst du wirklich '"+str+"'?? *kicher*\n");
...
}
@@ -126,9 +125,9 @@
(einschliesslich etwaiger eigener non-INPUT_APPEND input_tos), geht
die naechste Eingabe an enter_lastname().
-AENDERUNGEN
+GESCHICHTE
Die Bedeutung von <flag> wurde in 3.2.1@93 erweitert.
- Die Limitierung fuer das "stapeln" von input_to()s aus !-Kommandi
+ Die Limitierung fuer das "stapeln" von input_to()s aus !-Kommandos
wurde in LDMud 3.2.8 implementiert.
Seit LDMud 3.2.8 kann <fun> in Form einer Closure angegeben werden.
LDMud 3.2.9 fuehrte das Flag INPUT_PROMPT samt zugehoerigem Argument
@@ -136,7 +135,7 @@
LDMud 3.2.11/3.3.593 fuehrte das INPUT_NO_TELNET Flag ein.
LDMud 3.2.11/3.3.637 fuehrte das INPUT_APPEND Flag ein.
-BUGS
+FEHLER
Im Zeichenmodus sollten Zeilenumbrueche eigentlich als "\n" zurueck
gegeben werden. Dies allerdings kann existierenden Code zerstoeren.
diff --git a/doc/efun/input_to_info b/doc/efun/input_to_info
index 8dac3d3..7a8cb28 100644
--- a/doc/efun/input_to_info
+++ b/doc/efun/input_to_info
@@ -1,9 +1,9 @@
SYNOPSIS
- *mixed input_to_info(object player);
+ mixed * input_to_info(object player)
BESCHREIBUNG
- Liefert ein Array aller fuer <player> haengigen input_to()s. Der
- erste Eintrag im Array ist der aelteste haengige input_to()
+ Liefert ein Array aller fuer <player> anhaengigen input_to()s.
+ Der erste Eintrag im Array ist der aelteste anhaengige input_to()
(derjenige, welcher als erstes gestartet wurde), der letzte
Eintrag ist der neuste input_to().
@@ -13,7 +13,7 @@
1: Die Funktion (String oder Closure)
2ff: Die Argumente
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
diff --git a/doc/efun/interactive b/doc/efun/interactive
index c326f8a..f3c19f1 100644
--- a/doc/efun/interactive
+++ b/doc/efun/interactive
@@ -1,9 +1,10 @@
SYNOPSIS
- int interactive(object obj);
+ int interactive()
+ int interactive(object obj)
BESCHREIBUNG
Liefert 1 zurueck, wenn <obj> ein interaktiver User (ein Spieler)
- ist. Wird <obj> weggelassen, dann wird this_object() verwendet.
+ ist, sonst 0. Wird <obj> weggelassen, so wird this_object() verwendet.
SIEHE AUCH
query_once_interactive(E), query_ip_number(E), query_ip_name(E),
diff --git a/doc/efun/intp b/doc/efun/intp
index 6a6a0f2..49de69f 100644
--- a/doc/efun/intp
+++ b/doc/efun/intp
@@ -2,9 +2,8 @@
int intp(mixed arg)
BESCHREIBUNG
- Liefert 1, wenn das Argument eine Ganzzahl (Integer) ist, ansonsten
- 0.
+ Liefert 1, wenn das Argument eine Ganzzahl (Integer) ist, sonst 0.
SIEHE AUCH
closurep(E), floatp(E), mappingp(E), objectp(E), pointerp(E),
- referencep(E), stringp(E), symbolp(E), clonep(E)
+ referencep(E), stringp(E), bytesp(E), symbolp(E), clonep(E)
diff --git a/doc/efun/invert_bits b/doc/efun/invert_bits
index 27bbe6d..0836df7 100644
--- a/doc/efun/invert_bits
+++ b/doc/efun/invert_bits
@@ -1,12 +1,12 @@
SYNOPSIS
- string invert_bits(string str);
+ string invert_bits(string str)
BESCHREIBUNG
Invertiert den Status aller Bits im Bitstring <str> und liefert den
neuen String zurueck. Dabei bleibt die Laenge von <str>, also die
gesamte Anzahl Bits, die gleiche.
-BEISPIEL
+BEISPIELE
string s;
s = set_bit("", 3); s = set_bit(s, 4); s = set_bit(s, 15);
--> s ist nun "8 ("
diff --git a/doc/efun/last_bit b/doc/efun/last_bit
index d0d2471..f0467c0 100644
--- a/doc/efun/last_bit
+++ b/doc/efun/last_bit
@@ -1,5 +1,5 @@
SYNOPSIS
- int last_bit(string str);
+ int last_bit(string str)
BESCHREIBUNG
Liefert die Nummer des letzten gesetzten Bits im Bitstring <str>.
@@ -9,7 +9,7 @@
Leerschlag " " mit dem Wert 0. Das erste Zeichen im String ist jenes
mit den niedrigsten Bits (0-5).
-BEISPIEL
+BEISPIELE
string s;
s = set_bit("", 4); s = set_bit(s, 2);
last_bit(s) --> liefert 4
diff --git a/doc/efun/last_instructions b/doc/efun/last_instructions
index ca447d9..2b4b2bc 100644
--- a/doc/efun/last_instructions
+++ b/doc/efun/last_instructions
@@ -1,6 +1,6 @@
GESCHUETZT
SYNOPSIS
- string *last_instructions(int lenght, int verbose);
+ string * last_instructions(int lenght, int verbose)
BESCHREIBUNG
Liefert ein Array mit der "Laenge" der zuletzt ausgefuehrten
diff --git a/doc/efun/living b/doc/efun/living
index 6f0a886..7434104 100644
--- a/doc/efun/living
+++ b/doc/efun/living
@@ -1,12 +1,12 @@
SYNOPSIS
- int living(object ob);
+ int living(object ob)
BESCHREIBUNG
- Liefert 1 zurueck, wenn <ob> ein lebendiges Objekt (living) ist.
- <ob> ist living, wenn enable_commands() aus <obj> aufgerufen wurde.
- <ob> kann auch 0 sein.
+ Liefert 1 zurueck, wenn <ob> ein lebendiges Objekt ("living") ist.
+ <ob> ist living, wenn enable_commands() aus <obj> heraus aufgerufen
+ wurde. <ob> kann auch 0 sein.
-BEISPIEL
+BEISPIELE
living(this_player()); -> Dies liefert (hoffentlich) 1 zuerueck.
SIEHE AUCH
diff --git a/doc/efun/load_object b/doc/efun/load_object
index 847d0b8..b2c2b21 100644
--- a/doc/efun/load_object
+++ b/doc/efun/load_object
@@ -1,23 +1,23 @@
SYNOPSIS
- object load_object(string name)
+ object load_object(string file)
-DESCRIPTION
- Load the object from the file <name> and return it. If the
- object already exists, just return it.
+BESCHREIBUNG
+ Laedt und liefert das Objekt aus der Datei <file>. Wenn das Objekt
+ bereits existiert, wird es nur zurueckgeliefert.
- This efun can be used only to load blueprints - for clones, use
- the efun clone_object().
+ Diese Efun laedt nur Blueprints. Fuer Clone muss clone_object()
+ verwendet werden.
- If strict euids are enforced, the cloning object must have
- a non-zero euid.
+ Werden strikte EUIDs verlangt, muss das ladende Objekt eine EUID != 0
+ haben.
-EXAMPLE
- // Update and reload the standard player object
+BEISPIELE
+ // Erneuere das Standard Player-Objekt
destruct(find_object("/std/player"));
load_object("/std/player");
-HISTORY
- Introduced in LDMud 3.2.6.
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.6.
-SEE ALSO
+SIEHE AUCH
clone_object(E)
diff --git a/doc/efun/localtime b/doc/efun/localtime
index a522dc4..cebc838 100644
--- a/doc/efun/localtime
+++ b/doc/efun/localtime
@@ -1,8 +1,8 @@
SYNOPSIS
- #include <sys/time.h>
+ #include <time.h>
- int *localtime(int clock);
- int *localtime(int *uclock);
+ int * localtime(int clock)
+ int * localtime(int *uclock)
BESCHREIBUNG
Interpretiert das Argument <clock> als Anzahl Sekunden seit dem
@@ -27,13 +27,13 @@
int TM_YDAY (7): Tag im Jahr (0..365)
inz TM_ISDST (8): TRUE: Daylight Saving Time
-BEISPIEL
- printf("Today is %s\n", ({ "Sonntag", "Montag", "Dienstag",
+BEISPIELE
+ printf("Heute ist %s\n", ({ "Sonntag", "Montag", "Dienstag",
"Mittwoch", "Donnerstag", "Freitag", "Samstag"})
[localtime()[TM_WDAY]]);
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.9
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
- ctime(E), gmtime(E), time(E), utime(E)
+ ctime(E), gmtime(E), time(E), utime(E)
diff --git a/doc/efun/log b/doc/efun/log
index 1b2abff..fc8c7eb 100644
--- a/doc/efun/log
+++ b/doc/efun/log
@@ -1,8 +1,11 @@
SYNOPSIS
- float log(int|float arg);
+ float log(int|float arg)
BESCHREIBUNG
Liefert den natuerlichen Logarithmus von <arg>.
+GESCHICHTE
+ LDMud 3.2.9 fuehrte Integers als Argumente ein.
+
SIEHE AUCH
exp(E), pow(E)
diff --git a/doc/efun/lower_case b/doc/efun/lower_case
index 9701e20..1dcde99 100644
--- a/doc/efun/lower_case
+++ b/doc/efun/lower_case
@@ -1,11 +1,11 @@
SYNOPSIS
- string lower_case(string str);
+ string lower_case(string str)
BESCHREIBUNG
Konvertiert alle Zeichen in <str> in Kleinbuchstaben und liefert den
neuen String.
-BEISPIEL
+BEISPIELE
lower_case("Hallo WeLT!") -> "hallo welt!"
SIEHE AUCH
diff --git a/doc/efun/m_add b/doc/efun/m_add
index 624f4b9..6314c88 100644
--- a/doc/efun/m_add
+++ b/doc/efun/m_add
@@ -1,5 +1,5 @@
SYNOPSIS
- mapping m_add(mapping map, mixed key, [mixed data, ...]);
+ mapping m_add(mapping map, mixed key, [mixed data, ...])
BESCHREIBUNG
Fuegt einen neuen Eintrag mit Index <key> zum Mapping <map> hinzu
@@ -21,7 +21,7 @@
apply(#'m_add, m, "baz", ({ 4, 5 }))
--> ([ "foo":1;2, "bar":1;0, "baz":4;5 ])
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
diff --git a/doc/efun/m_contains b/doc/efun/m_contains
index e941ff3..d0b1e54 100644
--- a/doc/efun/m_contains
+++ b/doc/efun/m_contains
@@ -1,5 +1,5 @@
SYNOPSIS
- int m_contains(mixed &data1, ... , &dataN, mapping map, mixed key);
+ int m_contains(mixed &data1, ... , &dataN, mapping map, mixed key)
BESCHREIBUNG
Wenn <map> den Key <key> enthaelt, werden die entsprechenden Werte
@@ -11,7 +11,7 @@
Man kann diese Funktion auch fuer 0-Wert Mappings verwenden, wobei
sie den gleichen Effekt wie member(E) hat.
-AENDERUNGEN
+GESCHICHTE
Umbenannt von 'mapping_contains' in LDMud 3.2.6.
SIEHE AUCH
diff --git a/doc/efun/m_indices b/doc/efun/m_indices
index 4d84c4e..b80f32c 100644
--- a/doc/efun/m_indices
+++ b/doc/efun/m_indices
@@ -1,9 +1,9 @@
-SYNOPSIS:
- mixed *m_indices(mapping map)
+SYNOPSIS
+ mixed * m_indices(mapping map)
-DESCRIPTION:
- Return an array containing the indices of mapping 'map'.
+BESCHREIBUNG
+ Liefert ein Array mit den Indizes von <map>.
-SEE ALSO:
- mappingp(E), mkmapping(E), m_values(E), m_delete(E),
- sizeof(E), widthof(E)
+SIEHE AUCH
+ mappingp(E), mkmapping(E), m_add(E), m_values(E), m_delete(E),
+ sizeof(E), widthof(E), unmkmapping(E)
diff --git a/doc/efun/m_reallocate b/doc/efun/m_reallocate
index 627bc97..550e12b 100644
--- a/doc/efun/m_reallocate
+++ b/doc/efun/m_reallocate
@@ -1,5 +1,5 @@
SYNOPSIS
- mapping m_reallocate(mapping m, int width);
+ mapping m_reallocate(mapping m, int width)
BESCHREIBUNG
Erzeugt ein neues Mapping mit <width> Werten pro Key und fuellt das
@@ -10,14 +10,14 @@
Das urspruengliche Mapping <m> wird nicht veraendert.
-BEISPIEL
+BEISPIELE
mapping m = ([ "foo":1;2;3, "bar":4;5;6 ])
m_reallocate(m, 1) --> liefert ([ "foo":1, "bar:4 ])
m_reallocate(m, 4) --> liefert ([ "foo":1;2;3;0, "bar:4;5;6;0 ])
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.6, auf Vorschlag von TubMud.
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.6, auf Vorschlag von Tubmud.
SIEHE AUCH
m_allocate(E), m_values(E), widthof(E)
diff --git a/doc/efun/m_values b/doc/efun/m_values
index 4b94154..153aef1 100644
--- a/doc/efun/m_values
+++ b/doc/efun/m_values
@@ -1,14 +1,24 @@
-SYNOPSIS:
- mixed *m_values(mapping map)
- mixed *m_values(mapping map, int index)
+SYNOPSIS
+ mixed * m_values(mapping map)
+ mixed * m_values(mapping map, int index)
-DESCRIPTION:
- If index is 0 or not given, return an array with the first values of
- mapping 'map'.
- For values of index >0, return an array with the corresponding higher
- values of mapping 'map', i.e. m_values(map,2) returns the third
- values.
+BESCHREIBUNG
+ Liefert ein Array mit den Werten des Mappings <map>. Wenn <index>
+ angegeben ist, liefert m_values() die Werte der entsprechenden Spalte,
+ sonst die Werte der ersten Spalte.
-SEE ALSO:
- mappingp(E), mkmapping(E), m_indices(E), m_delete(E),
- sizeof(E), widthof(E), mappings(LPC)
+BEISPIELE
+ mapping m = ([ "bla":1;2;3 , "fasel":4;5;6 , "schnack":7;8;9 ]);
+ m_values(m) -> liefert ({ 1 , 4 , 7 }) (u.U. permutiert)
+ m_values(m, 0) -> liefert ({ 1 , 4 , 7 }) (ditto)
+ m_values(m, 1) -> liefert ({ 2 , 5 , 8 }) (ditto)
+
+ Die genaue Reihenfolge der Werte im Ergebnisarray ist nicht
+ vorhersagbar, und kann sich mit jeder Aenderung am Mapping aendern.
+ Garantiert ist lediglich, dass die Ergebnisse von m_indices() und
+ m_values(), wenn sie zur selben Zeit bestimmt werden, dieselbe
+ Reihenfolge aufweisen.
+
+SIEHE AUCH
+ mappingp(E), mkmapping(E), m_add(E), m_indices(E), m_delete(E),
+ sizeof(E), widthof(E), unmkmapping(E)
diff --git a/doc/efun/make_shared_string b/doc/efun/make_shared_string
index 3bb6732..b39c6f6 100644
--- a/doc/efun/make_shared_string
+++ b/doc/efun/make_shared_string
@@ -1,6 +1,7 @@
VERALTET
SYNOPSIS
- string make_shared_string (string str);
+ string make_shared_string(string str)
+ bytes make_shared_string(bytes str)
BESCHREIBUNG
Fuegt <str> in die Tabelle der gemeinsam verwendeten String des Spiels
@@ -15,10 +16,10 @@
Driver wandelt untablierte Strings nach einiger Zeit automatisch in
tablierte Strings um um
-BUGS
+FEHLER
Ein besseres Stringhandling im Driver sollte diese Efun ueberfluessig
machen.
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.6, auf Vorschlag von TubMud.
- Veraltet seit LDMud 3.3 .
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.6, auf Vorschlag von Tubmud.
+ Veraltet seit LDMud 3.3.
diff --git a/doc/efun/mappingp b/doc/efun/mappingp
index fef2ac7..5ab4ed2 100644
--- a/doc/efun/mappingp
+++ b/doc/efun/mappingp
@@ -1,9 +1,10 @@
-SYNOPSIS:
- int mappingp(mixed arg)
+SYNOPSIS
+ int mappingp(mixed arg)
-DESCRIPTION:
- Return 1 if the argument is a mapping, or 0 if it is not.
+BESCHREIBUNG
+ Liefert 1, wenn das Argument ein Mapping ist, ansonsten 0.
-SEE ALSO:
- intp(E), stringp(E), objectp(E), pointerp(E), mkmapping(E),
- m_indices(E), m_values(E), m_delete(E), sizeof(E)
+SIEHE AUCH
+ intp(E), stringp(E), bytesp(E), objectp(E), pointerp(E),
+ mkmapping(E), m_indices(E), m_values(E), m_delete(E),
+ sizeof(E), widthof(E).
diff --git a/doc/efun/master b/doc/efun/master
index cdf55b6..aa14001 100644
--- a/doc/efun/master
+++ b/doc/efun/master
@@ -1,6 +1,6 @@
SYNOPSIS
- object master();
- object master(int dont_load);
+ object master()
+ object master(int dont_load)
BESCHREIBUNG
Die Funktion liefert das Masterobjekt.
@@ -10,8 +10,8 @@
master() nur das Masterobjekt oder 0, falls das aktuelle Masterobjekt
zerstoert wurde.
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.10
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.10.
SIEHE AUCH
master(M)
diff --git a/doc/efun/max b/doc/efun/max
index 189f4a5..bd4f870 100644
--- a/doc/efun/max
+++ b/doc/efun/max
@@ -1,23 +1,23 @@
SYNOPSIS
- string max(string arg, ...);
- string max(string *arg);
+ string|bytes max(string|bytes arg, ...)
+ string|bytes max(string|bytes *arg)
- int|float max(int|float arg, ...);
- int|float max(int|float *arg);
+ int|float max(int|float arg, ...)
+ int|float max(int|float *arg)
BESCHREIBUNG
Die Funktion liefert den groessten Wert aller <arg> und liefert ihn
zurueck. Wird max() nur mit einem Array aufgerufen wird (das nicht
leer sein darf), liefert die Funktion das groesste Element aus <arg>.
-BEISPIEL
+BEISPIELE
max(1) - liefert 1
max(1, 1.1) - liefert 1.1
max("foo", "bar") - liefert "foo"
max( ({ "foo", "bar" }) ) - liefert "foo"
-AENDERUNGEN
- Eingefuehrt in LDMued 3.2.9.
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
min(E)
diff --git a/doc/efun/md5_crypt b/doc/efun/md5_crypt
index d91ba18..2dffbdc 100644
--- a/doc/efun/md5_crypt
+++ b/doc/efun/md5_crypt
@@ -1,6 +1,8 @@
SYNOPSIS
string md5_crypt(string str, int seed)
string md5_crypt(string str, string seed)
+ string md5_crypt(bytes str, int seed)
+ string md5_crypt(bytes str, string seed)
BESCHREIBUNG
Verschluesselt den String <str> mit dem Schluessel <seed>.
diff --git a/doc/efun/member b/doc/efun/member
index 9f0e66a..2ef5b42 100644
--- a/doc/efun/member
+++ b/doc/efun/member
@@ -1,12 +1,13 @@
SYNOPSIS
- int member(mixed *array, mixed elem [, int start]);
- int member(string s, int elem [, int start]);
- int member(mapping map, mixed key);
+ int member(mixed *array, mixed elem [, int start])
+ int member(string s, int elem [, int start])
+ int member(bytes s, int elem [, int start])
+ int member(mapping map, mixed key)
BESCHREIBUNG
- Fuer Arrays und String liefert member() den Index des ersten
- Auftretens von <elem> in <arg>. Ist <elem> nicht in <arg> enthalten,
- wird -1 zurueck gegeben.
+ Fuer Arrays, String und Bytefolgen liefert member() den Index
+ des ersten Auftretens von <elem> in <arg>. Ist <elem> nicht
+ in <arg> enthalten, wird -1 zurueck gegeben.
Ist <start> als Zahl >= 0 gegeben, beginnt die Suche ab der
angegebenen Position. Eine Startposition groesser als die
@@ -15,10 +16,8 @@
Fuer Mapping prueft member(), ob <key> in <map> enthalten ist und
liefert 1 zurueck falls ja, 0 sonst.
-BEISPIELE
- member( ({ "abc", "defg" }), "defg" ) = 1
- member( ({ "abc", "defg" }), "x" ) = -1
- member( "abcdefg", 100 ) = member( "abcdefg", 'd' ) = 3
+GESCHICHTE
+ LDMud 3.3.556 fuegte den <start>-Parameter hinzu.
SIEHE AUCH
- rmember(E), mappings(LPC)
\ No newline at end of file
+ rmember(E), mappings(LPC)
diff --git a/doc/efun/min b/doc/efun/min
index c11f9b5..3ec81a7 100644
--- a/doc/efun/min
+++ b/doc/efun/min
@@ -1,21 +1,21 @@
SYNOPSIS
- string min(string arg, ... );
- string min(string *arg_array);
- int|float min(int|float arg, ...);
- int|flaot min(int|float *arg_array);
+ string|bytes min(string|bytes arg, ... )
+ string|bytes min(string|bytes *arg_array)
+ int|float min(int|float arg, ...)
+ int|float min(int|float *arg_array)
BESCHREIBUNG
Liefert das kleinste der Argumente <arg>. Wenn min() fuer ein
einzelnes (nicht leeres) Array aufgerufen wird, liefert min() das
kleinste Element im Array.
-BEISPIEL
+BEISPIELE
min(1) -> liefert 1
min(1, -1.1) -> liefert -1.1
min("bla", "fasel") -> liefert "bla"
min( ({ "bla", "fasel" }) ) -> liefert "bla"
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
diff --git a/doc/efun/mkdir b/doc/efun/mkdir
index 8c7a683..1562498 100644
--- a/doc/efun/mkdir
+++ b/doc/efun/mkdir
@@ -1,5 +1,5 @@
SYNOPSIS
- int mkdir(string path);
+ int mkdir(string path)
BESCHREIBUNG
Erstellt ein Verzeichnis <path> und liefert 1, wenn das Verzeichnis
diff --git a/doc/efun/mkmapping b/doc/efun/mkmapping
index 75cf827..477d471 100644
--- a/doc/efun/mkmapping
+++ b/doc/efun/mkmapping
@@ -1,37 +1,30 @@
SYNOPSIS
- mapping mkmapping(mixed *arr1, mixed *arr2, mixed *arr3, ...);
- mapping mkmapping(struct st);
+ mapping mkmapping(mixed *arr1, mixed *arr2, mixed *arr3, ...)
+ mapping mkmapping(struct st)
BESCHREIBUNG
Liefert ein Mapping mit Keys aus <arr1> und Datenelementen aus
<arr2>, <arr3>.... Dem Key <arr1[0]> werden die Datenelemente
<arr2[0]>, <arr3[0]>... zugeordnet. Wenn die Datenarrays
- ungleich gross sind, enthaelt das Mapping nur so viele Eintraege,
+ ungleich gross sind, enthaelt das Mapping nur so viele Eintraege
wie im kleinsten Datenarray enthalten sind.
Die zweite Form konvertiert die angegebene struct <st> in ein Mapping.
Hierbei werden die Namen des jeweiligen Elementes in der struct als
- als Schluessel.
+ Schluessel verwendet.
- Gewoehnlich werden Mappings erweitert, indem einfach neue Elemente
- eingefuegt werden. Diese Funktion ist nuetzlich, wenn der
- ungefaehr benoetigte Speicherplatz bereits vorher bekannt ist,
- um so den Overhead bei der Speicherallokation zu minimieren.
- Allenfalls zu viel allozierter Speicher wird freigegeben, sobald
- die Funktion, die die mkmapping() Anweisung enthaelt, beendet ist.
-
-BESIPIEL
- mkmapping( ({ 1, 2 }), ({ 10, 11 }), ({ 20, 21, 22}));
+BEISPIELE
+ mkmapping( ({ 1, 2 }), ({ 10, 11 }), ({ 20, 21, 22}))
liefert ([ 1:10;20, 2:11;21 ])
- struct s { int a, b, c; };
- mkmapping( (<s> 1, ({ 2, 3 }), 3 )
+ struct s { int a; int *b; int c; };
+ mkmapping( (<s> a: 1, b: ({ 2, 3 }), c: 3 )
liefert ([ "a":1, "b":({2,3}), "c":3 ])
-AeNDERUNGEN
+GESCHICHTE
LDMud 3.3.433 ermoeglichte die Konversion von structs.
-VERGLEICHE
+SIEHE AUCH
mappings(LPC), mappingp(E), m_indices(E), m_values(E),
m_add(E), m_delete(E), sizeof(E), widthof(E), unmkmapping(E),
to_struct(E)
diff --git a/doc/efun/mktime b/doc/efun/mktime
index b71227b..e750e37 100644
--- a/doc/efun/mktime
+++ b/doc/efun/mktime
@@ -1,11 +1,11 @@
SYNOPSIS
- #include <sys/time.h>
+ #include <time.h>
- int mktime(int *ts);
+ int mktime(int *ts)
BESCHREIBUNG
- Ist das Argument <ts> ein Array mit 9 Elementen (int), entsprechend
- des Rueckgabewertes von local_time()/gm_time(), liefert die Funktion
+ Ist das Argument <ts> ein Array mit 9 Elementen (int) entsprechend
+ des Rueckgabewertes von local_time()/gm_time(), so liefert die Funktion
die Anzahl Sekunden seit dem 01. Januar 1970, 00:00:00 zurueck.
Dies ist von Nutzen, wenn man ein Datum/Uhrzeit hat, diese aber als
Ganzzahl-Wert speichern will oder eine Zeitdifferenz zwischen zwei
@@ -22,17 +22,17 @@
int TM_YDAY (7): Tag im Jahr (0..365)
inz TM_ISDST (8): TRUE: Daylight Saving Time
- TM_YDAY und TM_WDAY werden ignoriert und koennen beliebige Zahlen
- enthalten.
+ TM_YDAY und TM_WDAY werden ignoriert und koennen beliebige Zahlen
+ enthalten.
-BEISPIEL
- Man hat ein Datum/Uhrzeit (z.B. Benutzereingabe), welches als
- Unix-Zeitstmepel gespeichert werden soll:
- // "Mit, 24. Okt 2007, 10:48:00" entspricht folgendem Zeitstempel:
- int unixzeit = mktime( ({0, 48, 09, 24, 09, 2007, 0, 01, 0}) );
+BEISPIELE
+ Man hat ein Datum/Uhrzeit (z.B. Benutzereingabe), welches als
+ Unix-Zeitstempel gespeichert werden soll:
+ // "Mit, 24. Okt 2007, 10:48:00" entspricht folgendem Zeitstempel:
+ int unixzeit = mktime(({0, 48, 09, 24, 09, 2007, 0, 01, 0}));
-AENDERUNGEN
- Eingefuehrt in LDMud 3.3.71x
+GESCHICHTE
+ Eingefuehrt in LDMud 3.3.718.
SIEHE AUCH
- ctime(E), gmtime(E), local_time(E), time(E), utime(E)
+ ctime(E), gmtime(E), local_time(E), time(E), utime(E)
diff --git a/doc/efun/move_object b/doc/efun/move_object
index 48b23e9..f8d4572 100644
--- a/doc/efun/move_object
+++ b/doc/efun/move_object
@@ -1,18 +1,18 @@
-SYNOPSIS:
+GESCHUETZT
+SYNOPSIS
void move_object(mixed item, mixed dest)
- item->move(object dest, string methods)
+BESCHREIBUNG
+ <item> wird in die neue Umgebung <dest> bewegt. <item> und <dest>
+ koennen ein object_name() oder ein Objekt sein.
-DESCRIPTION:
- The item, which can be a object_name or an object, is moved into
- it's new environment dest, which can also be object_name or an
- object. In native mode, the only object that can be moved
- with move_object() is the calling object itself. This function
- is only used to implement the lfun move().
-
- Use the lfun move() instead by inheriting standard objects.
- move() must be called in the object to be moved. This gives
- the moved object full control over its movement.
+ Seit 3.2.1 ist die Funktionalitaet von move_object() direkt in der
+ Mudlib enthalten und verwendet dort die M_MOVE_OBJECT0/1 Treiber Hooks.
+ move_object() kann so auch eine simul-efun sein.
-SEE ALSO:
- move(L), remove(L), init(L), transfer(E), native(C)
+ In der traditionellen Implemenierung war <item> im COMPAT-Modus auf
+ das aufrufende Objekt beschraenkt.
+
+SIEHE AUCH
+ remove(A), init(A), transfer(E), native(C), hooks(C),
+ set_environment(E)
diff --git a/doc/efun/negate b/doc/efun/negate
index b1f0bdf..a496966 100644
--- a/doc/efun/negate
+++ b/doc/efun/negate
@@ -1,6 +1,6 @@
SYNOPSIS
- int negate(int arg);
- float negate(float arg);
+ int negate(int arg)
+ float negate(float arg)
BESCHREIBUNG
Liefert den negativen Wert von <arg>.
diff --git a/doc/efun/net_connect b/doc/efun/net_connect
index f3aae2f..41c9dd9 100644
--- a/doc/efun/net_connect
+++ b/doc/efun/net_connect
@@ -1,4 +1,5 @@
SYNOPSIS
+ #include <comm.h>
int net_connect(string host, int port)
BESCHREIBUNG
@@ -7,7 +8,19 @@
aufrufenden Objekt gebunden und die lfun logon() wird in dem
Objekt aufgerufen.
- Resultat ist 0 bei Erfolg, und eine Unix ERRNO bei Misserfolg.
+ Resultat ist einer der folgenden Werte:
+ NC_SUCCESS net_connect() erfolgreich
+ NC_EUNKNOWNHOST Host-Adresse nicht ermittelbar
+ NC_ENOSOCKET Fehler beim Erstellen des Sockets
+ NC_ENOBIND Fehler beim Binden des Sockets
+ NC_ENOCONNECT Fehler beim Verbindgen des Sockets
+ (Details ueber die letzten drei Fehler lassen sich im Fehlerlog des
+ Drivers ermitteln.)
+ NC_ECONNREFUSED Ziel ignoriert Verbindungsversuch
+ NC_EMCONN zuviele unerledigte Verbindungen im Aufbau
+ (voruebergehender Fehler, spaeter probieren)
+ NC_ENORESSOURCES ungenuegende Ressourcen fuer Verbindungs-
+ versuch (spaeter nochmal versuchen)
Ist der Driver fuer IPv6 konfiguriert, wird <host> erst als
IPv6-Name interpretiert, und wenn das fehlschlaegt, als
diff --git a/doc/efun/next_bit b/doc/efun/next_bit
index 31fb90a..b96f539 100644
--- a/doc/efun/next_bit
+++ b/doc/efun/next_bit
@@ -1,6 +1,6 @@
SYNOPSIS
- int next_bit(string str, int start);
- int next_bit(string str, int start, int find_cleared);
+ int next_bit(string str, int start)
+ int next_bit(string str, int start, int find_cleared)
BESCHREIBUNG
Liefert den Zahlenwert des naechsten Bits im Bitstring <bit> nach
@@ -16,7 +16,7 @@
ist der Leerschlag " " mit dem Wert 0. Das erste Zeichen im String
ist jenes mit den niedrigsten Bits (0-5).
-BEISPIEL
+BEISPIELE
string s;
int p;
diff --git a/doc/efun/next_inventory b/doc/efun/next_inventory
index 61370a0..7062ba1 100644
--- a/doc/efun/next_inventory
+++ b/doc/efun/next_inventory
@@ -1,17 +1,14 @@
SYNOPSIS
- object next_inventory();
- object next_inventory(object ob);
+ object next_inventory()
+ object next_inventory(object ob)
BESCHREIBUNG
Liefert das naechste Objekt aus dem Inventar von <ob>. Wird <ob>
nicht angegeben, wird this_object() verwendet.
- Diese Efun wird meistens zusammen mit first_inventory() verwendet
- um ueber Raum- und Containerinhalte zu iterieren.
+ Diese Efun wird meistens zusammen mit first_inventory() verwendet.
Fuer ein Beispiel siehe dort.
SIEHE AUCH
first_inventory(E), all_inventory(E), environment(E),
deep_inventory(E)
-
-7.Aug 2007 Gloinson
\ No newline at end of file
diff --git a/doc/efun/notify_fail b/doc/efun/notify_fail
new file mode 100644
index 0000000..a18da94
--- /dev/null
+++ b/doc/efun/notify_fail
@@ -0,0 +1,36 @@
+SYNOPSIS
+ int notify_fail(string str)
+ int notify_fail(closure cl)
+
+BESCHREIBUNG
+ Der String <str> wird als Kommando-Fehlermeldung anstelle des default
+ "What?" gespeichert. Das Resultat ist stets 0.
+
+ Wird eine Closure als Argument gegeben, wird sie im Fehlerfall
+ (also erst wenn ein Kommando endgueltig fehlgeschlagen hat)
+ ausgefuehrt und hat die Fehlermeldung als Resultat
+ zurueckzugeben. Die Closure erhaelt als Argument den
+ originalen Befehlsgeber; in der Regel dies ist this_player(),
+ was aber vom MODIFY_CMD hook geaendert werden kann.
+
+ Wird notify_fail() mehr als einmal fuer ein Kommando
+ aufgerufen, wird lediglich der letzte Aufruf gewertet.
+ notify_fail() erkennt verschachtelte Kommandos (siehe Efun
+ command()), und ein notify_fail() in einem Unterkommando
+ hat keinen Einfluss auf das uebergeordnete Kommando.
+
+BEISPIELE
+ Verwendet man
+
+ return notify_fail(message);
+
+ anstelle von
+
+ write(message); return 1;
+
+ erhalten andere Objekte ihre Chance, das Kommando
+ (erfolgreich) auszufuehren.
+
+SIEHE AUCH
+ add_action(E), command(E), query_verb(E), query_command(E),
+ query_notify_fail(E), hooks(C)
diff --git a/doc/efun/object_info b/doc/efun/object_info
index 4a773fc..89263f0 100644
--- a/doc/efun/object_info
+++ b/doc/efun/object_info
@@ -1,202 +1,126 @@
+GESCHUETZT
SYNOPSIS
- #include <object_info.h>
+ #include <objectinfo.h>
- mixed object_info(object ob, int what)
+ mixed * object_info(object ob, int what)
+ mixed * object_info(object ob, int what, int index)
-DESCRIPTION
- Returns some internal information about object <ob>. The
- Argument <what> determines which information is returned.
+BESCHREIBUNG
+ Liefert einige interne Informationen ueber das Objekt <ob> in Form
+ eines Arrays. Das Argument <what> gibt an, welche Informationen
+ geliefert werden.
- It can be either a configuration option as given to
- configure_object() or one of the following options:
+ Das Resultat ist normalerweise ein Array. Wird jedoch <index>
+ spezifiziert, wird nur der Wert geliefert, der im Array an der
+ Position <index> stehen wuerde.
+ Die moeglichen Werte fuer <what> und die Indizes des gelieferten
+ Arrays sind in <objectinfo.h> definiert und muessen eingebunden
+ werden. Diese Definitionen koennen sich in zukuenftigen Versionen
+ des Drivers aendern!
+ <what> == OINFO_BASIC:
- Object Flags:
+ Dieser Aufruf liefert grundlegende Informationen ueber <ob>:
+ int [OIB_HEART_BEAT]: 1, wenn <ob> einen heart_beat() hat,
+ sonst 0.
+ int [OIB_IS_WIZARD]: 1, wenn <ob> ein Gott ist (das
+ Wizard Flag gesetzt hat), sonst 0. Der
+ Eintrag ist immer 0, wenn set_is_wizard()
+ nicht verfuegbar ist.
+ int [OIB_ENABLE_COMMANDS]: 1, wenn <ob> Kommandos geben darf, sonst 0.
+ int [OIB_CLONE]: 1, wenn <ob> ein Clon ist, sonst 0.
+ int [OIB_DESTRUCTED]: 1, wenn <ob> zerstoert wurde, sonst 0.
+ int [OIB_SWAPPED]: 1, wenn <ob> geswapt wurde, sonst 0.
+ int [OIB_ONCE_INTERACTIVE]: 1, wenn <ob> einmal interaktiv war,
+ sonst 0.
+ int [OIB_RESET_STATE]: 1, wenn <ob> im gleichen Zustand wie nach
+ einem reset() ist, sonst 0.
+ int [OIB_WILL_CLEAN_UP]: 1, wenn <ob> clean_up() aufruft, sonst 0.
+ int [OIB_LAMBDA_REFERENCED]:1, wenn <ob> Lambdas beinhaltet, sonst 0.
+ int [OIB_SHADOW]: 1, wenn <ob> ein Schatten uebergeworfen
+ wurde, sonst 0.
+ int [OIB_REPLACED]: 1, wenn das Programm von <ob> ersetzt
+ wurde (mit replace_program()), sonst 0.
+ int [OIB_NEXT_RESET]: Zeit bis zum naechsten Reset.
+ int [OIB_TIME_OF_REF]: Zeit des letzen Aufrufs von <ob>.
+ int [OIB_REF]: Anzahl Aufrufe von <ob>.
+ int [OIB_GIGATICKS]: GIGATICKS und TICKS liefern die summierten
+ int [OIB_TICKS]: Evalkosten von <ob>.
+ int [OIB_SWAP_NUM]: Die Swap-Nummer von <ob>s Programm, oder
+ -1, wenn <ob> nicht geswapt wurde.
+ int [OIB_PROG_SWAPPED]: 1, wenn <ob>'s Programm geswapt wurde,
+ sonst 0.
+ int [OIB_VAR_SWAPPED]: 1, wenn <ob>'s Variablen geswapt wurden,
+ sonst 0.
+ int [OIB_NAME]: der Objektname von <ob>.
+ object [OIB_NEXT_ALL]: das naechste Objekt in der Objektliste.
+ object [OIB_PREV_ALL]: das vorherige Objekt in der Objektliste.
- <what> == OI_ONCE_INTERACTIVE:
- 1 if <ob> was once (or still is) interactive, 0 else.
+ <what> == OINFO_POSITION:
- <what> == OI_RESET_STATE:
- 1 if <ob> is (still) reset, 0 else.
+ Dieser Aufruf liefert Informationen ueber die Position von <ob> in der
+ globalen Objektliste:
- <what> == OI_WILL_CLEAN_UP:
- 1 if <ob>'s clean_up() will be called, 0 else.
+ object [OIP_NEXT]: naechstes Objekt in der Objektliste.
+ object [OIP_PREV]: vorheriges Objekt in der Objektliste.
+ int [OIP_POS]: die Position von <ob> in der Objektliste,
+ beginnend von 0 aufwaerts.
- <what> == OI_LAMBDA_REFERENCED:
- 1 if <ob> has lambdas (and there replace_program()
- is not allowed anymore), 0 else.
+ Dieser Aufruf kann aufwendig an Rechenzeit sein.
- <what> == OI_REPLACED:
- 1 if the program for <ob> was replaced, 0 else.
+ <what> == OINFO_MEMORY:
+ Dieser Aufruf liefert Informationen ueber Speichernutzung von <ob>.
+ int [OIM_REF]: Anzahl Referenzierungen von <ob>.
+ string [OIM_NAME]: Name von <ob>.
+ int [OIM_PROG_SIZE]: Programmgroesse.
+ int [OIM_NUM_FUNCTIONS]: Anzahl Funktionen in <ob>.
+ int [OIM_SIZE_FUNCTIONS]: Speicherbedarf der Funktionen
+ int [OIM_NUM_VARIABLES]: Anzahl Variablen im Programm.
+ int [OIM_SIZE_VARIABLES]: Speicherbedarf der Variablen.
+ int [OIM_NUM_STRINGS]: Anzahl Strings im Programm.
+ int [OIM_SIZE_STRINGS]: Speicherbedarf der String-Pointer.
+ int [OIM_SIZE_STRINGS_DATA]: Speicherbedarf der String-Daten,
+ korrigiert um das Ausmass des Daten-
+ Sharing.
+ int [OIM_SIZE_STRINGS_TOTAL]: unkorrigierter Speicherbedarf der
+ String-Daten.
+ int [OIM_NUM_INCLUDES]: Anzahl Includefiles im Programm.
+ int [OIM_NUM_INHERITED]: Anzahl inheriter Programme.
+ int [OIM_SIZE_INHERITED]: Speicherbedarf der Inherits.
+ int [OIM_TOTAL_SIZE]: Gesamter Speicherbedarf des Programms.
+ int [OIM_DATA_SIZE]: Gesamte Speicherbedarf der Variablenwerte
+ des Objekts <ob>, korrigiert um das
+ Ausmass des Daten-Sharings.
+ int [OIM_DATA_SIZE_TOTAL]: unkorrigierter Gesamter Speicherbedarf
+ der Variablenwerte des Objekts.
+ int [OIM_NO_INHERIT]: 1, wenn das Programm nicht inheritet
+ werden kann.
+ int [OIM_NO_CLONE]: 1, wenn das Programm / der Blueprint
+ nicht geclont werden kann.
+ int [OIM_NO_SHADOW]: 1, wenn dem Objekt kein Shadow
+ uebergeworfen werden darf.
- Program Flags:
+ Dieser Aufruf holt das Programm aus dem Swap, falls notwendig.
+ Die OIM_SIZE_xxx-Eintraege zeigen nur den Speicherbedarf der
+ Strukturen / Pointer an, nicht aber den Speicherbedarf von
+ Variablenwerten, Funktionscode oder der Strings selbst.
- <what> == OI_NO_INHERIT:
- 1 if the program can't be inherited.
- <what> == OI_NO_CLONE:
- 1 if the program/blueprint can't be cloned.
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.6.
+ Aenderungen in LDMud 3.2.7:
+ - neues Kriterium OIB_REPLACED.
+ - das Kriterium OIB_IS_WIZARD ist immer 0, wenn set_is_wizard()
+ nicht verfuegbar ist.
+ - das Kriterium OIB_APPROVED wurde entfernt.
+ LDMud 3.2.8 fuehrte neu OIM_DATA_SIZE im Resultat von OINFO_MEMORY ein.
+ LDMud 3.2.9 erweiterte OINFO_MEMORY um den Index Mechanismus,
+ OIM_NUM_INCLUDES, OIM_NO_INHERIT, OIM_NO_SHADOW, OIM_NO_CLONE,
+ OIM_SIZE_STRINGS_DATA, OIM_SIZE_STRINGS_TOTAL, und
+ OIM_DATA_SIZE_TOTAL
- <what> == OI_NO_SHADOW:
- 1 if the program's functions can't be shadowed.
-
- <what> == OI_SHARE_VARIABLES:
- 1 if clones of this program share their initial
- variable values with the blueprint.
-
-
-
- Swapping Information:
-
- <what> == OI_SWAPPED:
- 1 if <ob> is swapped, 0 else.
-
- <what> == OI_PROG_SWAPPED:
- 1 if <ob>'s program is swapped, 0 else.
-
- <what> == OI_VAR_SWAPPED:
- 1 if <ob>'s variables are swapped, 0 else.
-
- <what> == OI_SWAP_NUM:
- The swap number for <ob>s program, or -1 if not swapped.
-
-
-
- Time Information:
-
- <what> == OI_NEXT_RESET_TIME:
- Time of the next reset.
-
- <what> == OI_NEXT_CLEANUP_TIME:
- Time of the next data cleanup.
-
- <what> == OI_LAST_REF_TIME:
- Time of the last call to <ob>.
-
-
-
- Object List:
-
- <what> == OI_OBJECT_NEXT:
- The next object in the global object list.
-
- <what> == OI_OBJECT_PREV:
- The previous object in the global object list.
-
- <what> == OI_OBJECT_POS:
- The position of <ob> in the global object list,
- counting from 0 up. This can be expensive to compute.
-
-
-
- Shadows:
-
- <what> == OI_SHADOW_NEXT:
- The next object in the shadow list, i.e. the object
- that is shadowing <ob>, or 0 if <ob> is not shadowed.
-
- <what> == OI_SHADOW_PREV:
- The previous object in the shadow list, i.e. the object
- that <ob> is currently shadowing, or 0 if <ob> is not a shadow.
-
- <what> == OI_SHADOW_ALL:
- Returns an array of all objects that are currently
- shadowing <ob>, or an empty array if <ob> is not shadowed.
-
-
-
- Object Statistics:
-
- <what> == OI_OBJECT_REFS:
- The number of references to <ob>.
-
- <what> == OI_TICKS:
- The accumulated evaluation cost spend in <ob> modulo 1000000000.
-
- <what> == OI_GIGATICKS:
- The accumulated evaluation cost spend in <ob> divided by 1000000000.
-
- <what> == OI_DATA_SIZE:
- The total size of the values held in the object's variables,
- scaled down according to the extend of data sharing.
-
- <what> == OI_DATA_SIZE_TOTAL:
- The unmodified total size of the values held in the
- object's variables
-
-
-
- Program Statistics:
-
- <what> == OI_PROG_REFS:
- The number of references to <ob>'s program.
-
- <what> == OI_NUM_FUNCTIONS:
- The number of functions in the program.
-
- <what> == OI_NUM_VARIABLES:
- The number of variables in the program.
-
- <what> == OI_NUM_STRINGS:
- The number of strings in the program.
-
- <what> == OI_NUM_INHERITED:
- The number of explicitely inherited programs.
-
- <what> == OI_NUM_INCLUDED:
- The number of included files in the program.
-
- <what> == OI_SIZE_FUNCTIONS:
- The size needed for the function structures.
- Note that this does not include size of the function code.
-
- <what> == OI_SIZE_VARIABLES:
- The size needed for the variable structures.
- Note that this does not include size of the variable data,
- See OI_DATA_SIZE/OI_DATA_SIZE_TOTAL for that.
-
- <what> == OI_SIZE_STRINGS:
- The size needed for the string pointers.
-
- <what> == OI_SIZE_STRINGS_DATA:
- The size needed for the string values,
- scaled down according to the extend of data sharing.
-
- <what> == OI_SIZE_STRINGS_DATA_TOTAL:
- The unmodified size needed for the string values.
-
- <what> == OI_SIZE_INHERITED:
- The size needed for the inherit structures.
-
- <what> == OI_SIZE_INCLUDED:
- The size needed for the include structures.
-
- <what> == OI_PROG_SIZE:
- The size of the program structure.
-
- <what> == OI_PROG_SIZE_TOTAL:
- The total size of the program.
-
-
-HISTORY
- Introduced in LDMud 3.2.6.
- Changes in LDMud 3.2.7:
- - new basic result OIB_REPLACED.
- - basic result OIB_IS_WIZARD is always 0 if set_is_wizard()
- is not available.
- - basic result OIB_APPROVED is gone.
- LDMud 3.2.8 added OIM_DATA_SIZE to the result of OINFO_MEMORY.
- LDMud 3.2.9 added the index mechanism, OIM_NUM_INCLUDES,
- OIM_NO_INHERIT, OIM_NO_SHADOW, OIM_NO_CLONE, OIM_SIZE_STRINGS_DATA,
- OIM_SIZE_STRINGS_TOTAL, and OIM_DATA_SIZE_TOTAL to the result
- of OINFO_MEMORY.
- LDMud 3.3.378 added the OIM_SHARE_VARIABLES to the result
- of OINFO_MEMORY.
- LDMud 3.3.654 added the OIB_NEXT_CLEANUP to the result of OINFO_BASIC.
- LDMud 3.5.0 redesigned the whole efun.
-
-SEE ALSO
- configure_object(E), interactive_info(E), driver_info(E)
+SIEHE AUCH
+ debug_info(E)
diff --git a/doc/efun/object_name b/doc/efun/object_name
index 6ba82ed..b329ca9 100644
--- a/doc/efun/object_name
+++ b/doc/efun/object_name
@@ -1,26 +1,35 @@
-SYNOPSIS:
- string object_name()
- string object_name(object ob)
+SYNOPSIS
+ string object_name()
+ string object_name(object ob)
-DESCRIPTION:
- Get the file name of an object or if no argument is given of the current
- object. If the object is a cloned object, then it will not have a
- corresponding file name, but rather a new name based on the original
- file name.
-
- The returned name always begins with '/' (absolute path),
- except when the parser runs in COMPAT (-o) mode.
+BESCHREIBUNG
+ Liefert den Namen des Objekts <ob> oder des aktuellen Objekts, wenn
+ <ob> nicht angegeben wurde.
-EXAMPLES:
- find_object(object_name(ob)) == ob
- This is guaranteed to be true for all objects ob that are not
- destructed.
-
- sizeof(explode(object_name(ob), "#")) == 1
- This is always true if ob is a blue print.
-
-SEE ALSO:
- find_object(E)
+ Als Spezialfall liefert die Funktion 0, wenn <ob> 0 ist.
-29.10.2006 Zesstra
+ Dieser Name ist der Name, unter dem das Objekt in der mudinternen
+ Objekttabelle aufgelistet ist. Der Name wird bei der Erzeugung des
+ Objekts eingetragen. Fuer Blueprints entspricht der Name dem Filenamen
+ (ohne die Endung .c), fuer Clones ist es der Name des Blueprints
+ ergaenzt mit einer eindeutigen Nummer nach dem #. Diese Regeln gelten
+ auch fuer virtuelle Objekte - die realen Namen/Typen von virtuellen
+ Objekten werden nicht beruecksichtigt.
+ Der Name eines Objekts kann mit rename_object() geaendert werden.
+ object_name() beruecksichtigt alle diese Aenderungen.
+
+ Der zurueck gegebene Name beginnt immer mit '/' (absoluter Pfad),
+ ausser wenn der Driver im COMPAT-Modus laeuft.
+
+BEISPIELE
+ find_object(object_name(ob)) == ob
+
+ Dies ist immer wahr fuer alle Objekte <ob>, die nicht zerstoert sind.
+
+GESCHICHTE
+ 0 als Argument wird seit 3.2.9 akzeptiert.
+
+SIEHE AUCH
+ clone_object(E), load_name(E), load_object(E), find_object(E),
+ object_time(E), program_name(E), rename_object(E)
diff --git a/doc/efun/object_time b/doc/efun/object_time
index db4d91c..3100dbc 100644
--- a/doc/efun/object_time
+++ b/doc/efun/object_time
@@ -1,6 +1,6 @@
SYNOPSIS
- int object_time();
- int object_time(object ob);
+ int object_time()
+ int object_time(object ob)
BESCHREIBUNG
Liefert die Zeit, zu der das Objekt <ob> erstellt wurde. Wird <obj>
diff --git a/doc/efun/objectp b/doc/efun/objectp
index 2b0758c..4183fba 100644
--- a/doc/efun/objectp
+++ b/doc/efun/objectp
@@ -1,9 +1,9 @@
SYNOPSIS
- int objectp(mixed arg);
+ int objectp(mixed arg)
BESCHREIBUNG
Liefert 1, wenn <arg> ein Objekt ist.
SIEHE AUCH
- clonep(E), intp(E), stringp(E), pointerp(E), symbolp(E),
- referencep(E), symbolp(E)
+ clonep(E), intp(E), stringp(E), bytesp(E), pointerp(E),
+ symbolp(E), referencep(E), symbolp(E)
diff --git a/doc/efun/or_bits b/doc/efun/or_bits
index 25406e4..98a558d 100644
--- a/doc/efun/or_bits
+++ b/doc/efun/or_bits
@@ -1,5 +1,5 @@
SYNOPSIS
- string or_bits(string str1, string str2);
+ string or_bits(string str1, string str2)
BESCHREIBUNG
<str1> und <str2> sind beides Bitstrings. Das Resultat von or_bits()
@@ -12,7 +12,7 @@
ist der Leerschlag " " mit dem Wert 0. Das erste Zeichen im String
ist jenes mit den niedrigsten Bits (0-5).
-BEISPIEL
+BEISPIELE
string s1, s2, s3;
s1 = set_bit("", 3); s1 = set_bit(s1, 15); -> s1 is "( ("
diff --git a/doc/efun/pow b/doc/efun/pow
index f0ff586..c069690 100644
--- a/doc/efun/pow
+++ b/doc/efun/pow
@@ -1,16 +1,16 @@
SYNOPSIS
- float pow(int|flaot base, int|flaot exp);
+ float pow(int|float base, int|float exp)
BESCHREIBUNG
Die Potenzfunktion. Sie liefert das Resultat von "<base> hoch <exp>".
-BEISPIEL
- pow(-2, 3) -> liefert -8.0
+BEISPIELE
+ pow(-2, 3) -> liefert -8.0
pow(8, 1.0/3.0) -> liefert 2.0
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.7.
- LDMud 3.2.9. erlaubte neu Integer als Argumente.
+ LDMud 3.2.9 erlaubte Integer als Argumente.
SIEHE AUCH
exp(E), log(E)
diff --git a/doc/efun/present b/doc/efun/present
index 7b7d8d3..2a9d0be 100644
--- a/doc/efun/present
+++ b/doc/efun/present
@@ -19,21 +19,14 @@
Ist <n> nicht gegeben, aber <str> hat die Form "<id> <n>" , wird
ebenfalls das n-te Objekt mit Namen <id> zurueckgeliefert.
- Es ist: id(str) { return str == <name>; }
+ <str> kann auch ein Objekt (anstatt einer Id) sein, was den Test
+ schneller und einfacher macht.
- <str> kann auch ein Objekt (anstatt einem object_name()) sein, was den
- Test schneller und einfacher macht.
+ 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.
- Das Argument <env> ist optional. <env> gibt an, wo nach <str> gesucht
- wird. Nur das Inventory von <env> wird durchsucht, nicht jedoch dessen
- Umgebung. Oftmals wird fuer <env> this_player() gesetzt.
-
-
-ANMERKUNG
- Diese efun kann u.U. _sehr_ teuer sein! Bitte schaut euch auf jeden
- Fall auch die efun present_clone() an und schaut, ob die evtl. das
- kann, was ihr machen wollt. present_clone() ist erheblich billiger.
-
+ANMERKUNGEN
Wenn die efun sowohl in this_object() als auch dessen Umgebung
sucht, werden, soweit es die Numerierung betrifft, die beiden
Umgebungen zusammenhaengend betrachtet.
@@ -70,7 +63,7 @@
}
}
-HISTORY
+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
diff --git a/doc/efun/present_clone b/doc/efun/present_clone
index cd64488..e061237 100644
--- a/doc/efun/present_clone
+++ b/doc/efun/present_clone
@@ -1,41 +1,53 @@
VORLAEUFIG
SYNOPSIS
- object present_clone(string str [, object env] );
- object present_clone(object obj [, object env] );
+ object present_clone(string str)
+ object present_clone(string str, int n)
+ object present_clone(string str, object env)
+ object present_clone(string str, object env, int n)
+
+ object present_clone(object obj)
+ object present_clone(object obj, int n)
+ object present_clone(object obj, object env)
+ object present_clone(object obj, object env, int n)
BESCHREIBUNG
Diese Efun durchsucht das Inventar von <env> nach einem Objekt mit
- einem bestimmten Blueprint . Wird <env> nicht angegeben, wird in
+ einem bestimmten Blueprint. Wird <env> nicht angegeben, wird in
this_object() gesucht. Der Blueprint kann entweder mit seinem Namen
- <str> angegeben werden, oder als Blueprint des Objekts <obj>. Gesucht
+ <str> angegeben oder als Blueprint des Objekts <obj> werden. Gesucht
wird in beiden Faellen aufgrund von load_name().
- Wird kein passendes Objekt gefunden, liefert die Efun 0 zurueck.
+ Wird <n> angegeben, wird das <n>. Objekt in <env> gesucht, ansonsten
+ das 1. in <env>.
+ Wird kein passendes Objekt gefunden, wird 0 zurueckgegeben.
Fuer Driver im Plain Modus beginnt der Name in jedem Fall mit '/', im
Compat Modus nicht.
BEISPIELE
- Angenommen, das Objekt <env> enthalte die Objekte /items/money#8,
+ Angenommen, das Objekt <env> enthalte die Objekte /obj/money#8,
/std/weapon#9, /std/weapon#12 und /obj/key in der angegeben
Reihenfolge.
+--------------------------------------------------+---------------+
| Funktion | Liefert |
+--------------------------------------------------+---------------+
- | present_clone("/items/money", env) | /items/money#8|
+ | present_clone("/obj/money", env) | /obj/money#8 |
| present_clone("/std/weapon#12", env) | /std/weapon#9 |
- | present_clone(find_object("/items/money#1"), env)| /items/money#8|
+ | present_clone(find_object("/obj/money#14"), env) | /obj/money#8 |
| present_clone("/obj/key#18", env) | /obj/key |
+ | present_clone("/std/weapon#12", env, 2) | /std/weapon#12|
+ | present_clone("/std/weapon#12", env, 3) | 0 |
+--------------------------------------------------+---------------+
Fuer Driver im Compat Modus liefert die Funktion keine '/' am Anfang.
-AENDERUNGEN
- Eingefuehrt in 3.2.7.
-
-ANMERKUNG
+ANMERKUNGEN
Im Unterschied zu present() sucht present_clone() niemals in der
Umgebung von <env>.
+GESCHICHTE
+ Eingefuehrt in 3.2.7.
+ Die Suche nach dem <n>-ten Objekt wurde in 3.3.718 ergaenzt.
+
SIEHE AUCH
load_name(E), present(E)
diff --git a/doc/efun/previous_object b/doc/efun/previous_object
index 6a712ad..086c2fa 100644
--- a/doc/efun/previous_object
+++ b/doc/efun/previous_object
@@ -1,14 +1,12 @@
SYNOPSIS
- object previous_object();
- object previous_object(int i);
+ object previous_object()
+ object 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.
- Bei einem Aufruf einer eigenen Funktion durch ein Objekt bleibt das
- bisherige previous_object() unveraendert.
Wird das Argument <i> angegeben, so verfolgt previous_object() den
Aufruf <i> Stufen zurueck. Zum Beispiel liefert previous_object(1) das
@@ -18,23 +16,22 @@
Es gibt einen wichtigen Spezialfall: in Funktionen, die vom Gamedriver
auf Grund eines externen Ereignises aufgerufen wurden (zum Beispiel
- Kommandi, die mit add_action() definiert wurden), liefert
- previous_object() this_object(), previous_object(0) hingegen 0.
+ Kommandos, die mit add_action() definiert wurden), liefert
+ previous_object() den Wert von this_object(), previous_object(0)
+ hingegen 0.
-BEISPIEL
- int sicherheitscheck()
- {
+BEISPIELE
+ int sicherheitscheck() {
object prev;
- if(!(prev=previous_object()));
- else if(getuid(prev)!=getuid(this_object()));
- else if(geteuid(prev)!=geteuid(this_object()));
+ 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())
- return;
+ void sensible_funktion() {
+ if (!sicherheitscheck())
+ return;
...
}
@@ -46,5 +43,5 @@
Werte von <i> < 0 werden wie <i> == 0 behandelt - dies ist historisch.
SIEHE AUCH
- call_other(E), this_object(E), this_player(E)
- caller_stack(E), caller_stack_depth(E), extern_call(E)
\ No newline at end of file
+ call_other(E), this_object(E), this_player(E), caller_stack(E),
+ caller_stack_depth(E), extern_call(E)
diff --git a/doc/efun/printf b/doc/efun/printf
index d58233b..f0e1eda 100644
--- a/doc/efun/printf
+++ b/doc/efun/printf
@@ -1,5 +1,5 @@
SYNOPSIS
- void printf(string format, ...);
+ void printf(string format, ...)
BESCHREIBUNG
Eine Mischung aus sprintf() und write(). Gibt void zurueck und den
diff --git a/doc/efun/program_name b/doc/efun/program_name
index 44162d5..2b76917 100644
--- a/doc/efun/program_name
+++ b/doc/efun/program_name
@@ -8,7 +8,7 @@
verwendet.
Der Name ist fuer Clones der Name des Files, aus dem der Blueprint
- kompliert wurde. Der Name wechselt, wenn ein Objekt sein Programm
+ kompiliert wurde. Der Name wechselt, wenn ein Objekt sein Programm
durch replace_program() aendert.
Fuer den Spezialfall, dass <obj> als 0 uebergeben wird, liefert
@@ -17,7 +17,7 @@
Der Name endet immer mit '.c'. Er beginnt mit einem '/', wenn der
Driver sich nicht im Compat Modus befindet.
-BEISPIEL
+BEISPIELE
object o;
o = clone_object("/std/dings");
write(program_name(o));
@@ -26,13 +26,13 @@
--> "/std/dings.c", wenn der Driver nicht im Compat Modus laeuft.
--> "std/dings.c", wenn der Driver im Compat Modus laeuft.
-AENDERUNGEN
+ANMERKUNGEN
+ Die Efun swapt das Programm ein, wenn dieses ausgelagert ist.
+
+GESCHICHTE
Eingefuehrt in LDMud 3.2.6.
Seit 3.2.9 ist das Argument 0 erlaubt.
-ANMERKUNG
- Die Efun swapt zum Programm, wenn dieses geswapt ist.
-
SIEHE AUCH
clone_object(E), clonep(E), load_name(E), load_object(E),
object_name(E), replace_program(E)
diff --git a/doc/efun/program_time b/doc/efun/program_time
index 62a6297..782d8d7 100644
--- a/doc/efun/program_time
+++ b/doc/efun/program_time
@@ -1,17 +1,14 @@
SYNOPSIS
int program_time()
- int program_time(object ob)
+ int program_time(object obj)
-DESCRIPTION
- Returns the creation (compilation) time of the object's
- program. In other words, this is the object_time() of
- the blueprint.
+BESCHREIBUNG
+ Gibt den Zeitpunkt an, zu dem das Objekt <obj> (bzw. this_object(),
+ wenn nichts angegeben wurde) erzeugt, d.h. kompiliert wurde.
- Default is this_object(), if no arg is given.
+ANMERKUNGEN
+ Diese Efun swapt das Programm zurueck ins Objekt, wenn es ausgelagert
+ war.
-
- CAVEAT: If the objects program is swapped out, this efun
- swaps it back in.
-
-SEE ALSO
+SIEHE AUCH
object_time(E), program_name(E)
diff --git a/doc/efun/query_actions b/doc/efun/query_actions
index 90acaba..688ddc3 100644
--- a/doc/efun/query_actions
+++ b/doc/efun/query_actions
@@ -1,7 +1,8 @@
SYNOPSIS
- #include <sys/commands.h>
+ #include <commands.h>
+ #include <sent.h>
- mixed *query_actions(object|string ob, mixed mask_or_verb);
+ mixed * query_actions(object|string ob, mixed mask_or_verb)
BESCHREIBUNG
Das erste Argument von query_actions() ist entweder ein Objekt
@@ -22,8 +23,8 @@
QA_OBJECT ( 8): das Objekt,
QA_FUNCTION (16): die Funktion.
- Der Typ ist ein Wert wie in <sent.h> (bzw. /sys/sent.h) definiert,
- der vom Parser Quellcode geliefert wird.
+ Der Typ ist ein Wert wie in <sent.h> definiert, der mit dem
+ Driver-Quellcode geliefert wird.
SENT_PLAIN durch add_action(fun, cmd) hinzugefuegt
SENT_SHORT_VERB durch add_action(fun, cmd, 1) hinzugefuegt
diff --git a/doc/efun/query_command b/doc/efun/query_command
index bbabdbd..e42e4da 100644
--- a/doc/efun/query_command
+++ b/doc/efun/query_command
@@ -1,5 +1,5 @@
SYNOPSIS
- string query_command();
+ string query_command()
BESCHREIBUNG
Liefert den Text des aktuellen Kommandos oder 0, wenn keines
@@ -9,20 +9,19 @@
modify_command() ausgefuehrt und nachfolgende Leerzeichen
abgeschnitten wurden.
- query_command() liefert 0, wenn es von einer Funktion gestartet wurde,
- die wiederum von einem call_out() oder dem heart_beat() aufgerufen
- wurde. Auch Kommandi, die beim Userlogin aufgerufen werden, liefern 0.
+ query_command() liefert 0, wenn es von einer Funktion gestartet
+ wurde, die wiederum von einem call_out() oder dem heart_beat()
+ aufgerufen wurde. Auch Kommandos, die beim Userlogin aufgerufen
+ werden, liefern 0.
-BEISPIEL
- void init()
- {
+BEISPIELE
+ void init() {
...
add_action("sing","sing");
...
}
- int sing(string str)
- {
+ int sing(string str) {
write("Dein Kommando war:"+query_command()+"\n");
return 1;
}
diff --git a/doc/efun/query_notify_fail b/doc/efun/query_notify_fail
index 3d98423..ef3a521 100644
--- a/doc/efun/query_notify_fail
+++ b/doc/efun/query_notify_fail
@@ -1,6 +1,6 @@
SYNOPSIS
- mixed query_notify_fail();
- mixed query_notify_fail(int flag);
+ mixed query_notify_fail()
+ mixed query_notify_fail(int flag)
BESCHREIBUNG
Wenn <flag> nicht angegeben oder 0 ist, liefert die Funktion den String
@@ -9,10 +9,7 @@
Wurde keine Meldung gesetzt, wird 0 geliefert.
- Ist <flag> != 0 wird das Objekt zurueckgeliefert, was das letzte
- Notify-Fail gesetzt hat.
-
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.7.
LDMud 3.2.8 fuegte den Paramter <flag> hinzu.
diff --git a/doc/efun/query_verb b/doc/efun/query_verb
index f216591..2890174 100644
--- a/doc/efun/query_verb
+++ b/doc/efun/query_verb
@@ -1,36 +1,24 @@
SYNOPSIS
- string query_verb();
- string query_verb(int flag);
+ string query_verb()
+ string query_verb(int flag)
BESCHREIBUNG
Liefert das Verb des aktuellen Kommandos oder 0, wenn kein Kommando
- bearbeitet wird.
+ bearbeitet wird. Wenn <flag> nicht angegeben oder 0 ist, wird das Verb
+ wie vom User eingegeben geliefert (das ist das erste Wort der
+ Inputzeile des Spielers, bis zum (aber ohne) den ersten Leerschlag /
+ Zeilenumbruch). Wenn <flag> nicht 0 ist, wird das Verb entsprechend
+ der add_action() zurueck gegeben.
- Wenn <flag> nicht angegeben oder 0 ist, wird das Verb wie vom User
- eingegeben geliefert (das ist das erste Wort der Inputzeile des
- Spielers, bis zum (aber ohne) den ersten Leerschlag / Zeilenumbruch).
- Wenn <flag> nicht 0 ist, wird das Verb entsprechend der add_action()
- zurueck gegeben.
-
- Innerhalb einer add_action()-Funktion, die von mehreren Kommandos
- aufgerufen wird kann man so zwischen diesen Kommandos unterscheiden.
-
-BEMERKUNGEN
- Die fruehere Einschraenkung, dass bei geschachtelten Kommandos
- query-verb() nach dem inneren Kommando 0 zurueck gibt ist jetzt
- entfallen.
-
-BEISPIEL
- void init()
- {
+BEISPIELE
+ void init() {
...
add_action("sing","singe");
add_action("sing","jodel", 1);
...
}
- int sing(string str)
- {
+ int sing(string str) {
write("Das Kommando war:"+query_verb()+(str ? str : "")+"\n");
write("Das Verb war:"+query_verb(1)+(str ? str : "")+"\n");
}
@@ -47,7 +35,8 @@
Das Kommando war: jodele
Das Verb war: jodel
-SIEHE AUCH
- query_command(E), add_action(E), AddCmd(L), AddAction(L)
+GESCHICHTE
+ LDMud 3.2.9. fuehrte das optionale Argument <flag> ein.
-7.Aug 2007 Gloinson
\ No newline at end of file
+SIEHE AUCH
+ add_action(E), query_command(E)
diff --git a/doc/efun/quote b/doc/efun/quote
index ce01fd7..926d71f 100644
--- a/doc/efun/quote
+++ b/doc/efun/quote
@@ -1,13 +1,16 @@
SYNOPSIS
- mixed quote(mixed arg);
+ mixed quote(mixed arg)
BESCHREIBUNG
Konvertiert ein Array zu einem quoted Array und Strings zu Symbolen.
Symbole und quoted Arrays werden erneut gequoted.
-BEISPIEL
+BEISPIELE
quote("foo") -> 'foo
quote(({1,2,3})) -> '({1,2,3})
+GESCHICHTE
+ Eingefuehrt in 3.2@70.
+
SIEHE AUCH
sympolp(E), unquote(E)
diff --git a/doc/efun/read_bytes b/doc/efun/read_bytes
index 95cabbd..c42109c 100644
--- a/doc/efun/read_bytes
+++ b/doc/efun/read_bytes
@@ -1,5 +1,5 @@
SYNOPSIS
- string read_bytes(string file, int start, int anzahl)
+ bytes read_bytes(string file, int start, int anzahl)
BESCHREIBUNG
Liest eine bestimmte Anzahl Bytes aus dem File <file>. Wenn <start>
diff --git a/doc/efun/read_file b/doc/efun/read_file
index 7f1ccfc..3c58ec1 100644
--- a/doc/efun/read_file
+++ b/doc/efun/read_file
@@ -1,5 +1,5 @@
SYNOPSIS
- string read_file(string file, int start, int anzahl)
+ string read_file(string file, int start, int anzahl, string encoding)
BESCHREIBUNG
Liest Zeilen aus einem File <file>. Wenn <start> angegeben ist und
@@ -9,11 +9,18 @@
Wenn <anzahl> nicht angegeben oder 0 ist, wird das gesamte File
gelesen, sonst nur <anzahl> Zeilen.
+ Mit <encoding> kann man den Zeichensatz spezifieren, der beim
+ Lesen der Datei angewandt werden soll. Falls er nicht angeben oder
+ 0 ist, so wird der Hook H_FILE_ENCODING verwendet.
+
Wenn <start> ausserhalb der Groesse des Files liegt, liefert
read_file() anstelle eines Strings 0 zurueck.
Die max. Anzahl einzulesender Bytes (nicht Zeilen!) pro Aufruf dieser
Funktion betraegt LIMIT_FILE (s. query_limits()).
+GESCHICHTE
+ LDMud 3.6.0 fuegte den <encoding>-Parameter hinzu.
+
SIEHE AUCH
- read_bytes(E), write_file(E)
+ read_bytes(E), write_file(E), hooks(C)
diff --git a/doc/efun/referencep b/doc/efun/referencep
index 5c2c0df..fa4bdda 100644
--- a/doc/efun/referencep
+++ b/doc/efun/referencep
@@ -9,5 +9,5 @@
uebergeben werden muss, z. B. referencep(&x).
SIEHE AUCH
- closurep(E), floatp(E), mappingp(E), objectp(E), intp(E),
+ bytesp(E), closurep(E), floatp(E), mappingp(E), objectp(E), intp(E),
pointerp(E), stringp(E), symbolp(E), clonep(E), references(LPC)
diff --git a/doc/efun/regexp b/doc/efun/regexp
index 354e6a6..c8f8910 100644
--- a/doc/efun/regexp
+++ b/doc/efun/regexp
@@ -1,41 +1,62 @@
SYNOPSIS
- #include <regexp.h>
+ string * regexp(string *list, string pattern)
- string *regexp(string *list, string pattern)
- string *regexp(string *list, string pattern, int opt)
+BESCHREIBUNG
+ Liefert ein neues Array mit all jenen Strings aus list zurueck,
+ welche auf das Muster pattern passen. Diese Funktion verwendet
+ dieselbe Syntax fuer regulaere Ausdruecke wie ed():
-DESCRIPTION
- Match the pattern <pattern> (interpreted according to <opt> if
- given) against all strings in list, and return a new array with all
- strings that matched.
+ . Passt auf jedes beliebige Zeichen.
- If there is an error in the regular expression, a runtime
- error will be raised.
+ ^ Passt auf den Beginn einer Zeichenkette.
-EXAMPLE
+ $ Passt auf das Ende einer Zeichenkette.
+
+ \< Passt auf das Beginn eines Wortes.
+
+ \> Passt auf das Ende eines Wortes.
+
+ \B Passt auf eine leere Zeichenkette an einem Wortrand
+ (sollte aehnlich wie das Symbol zur Emacs-Kompatibilitaet in
+ GNU egrep sein), seit 3.2@249
+
+ x|y Passt entweder auf den regulaeren Ausdruck x oder y.
+
+ () Verwendet den eingeschlossenen regulaeren Ausdruck wie einen
+ 'simplen' Ausdruck.
+
+ x* Der regulaere Ausdruck x passt beliebig oft (0 oder mehr).
+
+ x+ Der regulaere Ausdruck x passt mindestens einmal (1 oder mehr).
+
+ [..] Passt auf jedes in den Klammern eingeschlossenes Zeichen.
+
+ [^ ..] Passt auf jedes Zeichen, welches nicht in den Klammern
+ eingeschlossen ist. Das .. ist durch einzelne Zeichen oder
+ Bereiche von Zeichen zu ersten:
+ [abc] Passt auf a, b oder c.
+ [ab0-9] Passt auf a, b, c oder eine beliebige Ziffer.
+ [^a-z] Passt auf keinen klein geschriebenen Buchstaben.
+
+ \c Passt auf das Zeichen c, selbst wenn es eines der Sonderzeichen ist.
+
+ Wenn es einen Fehler im regulaeren Ausdruck gibt, wird ein
+ Laufzeitfehler ausgeloest.
+
+BEISPIELE
string strs;
- string pattern;
-
- if (regexp_package() == RE_PCRE)
- pattern = "\\<help\\>.*\\<me\\>";
- else
- pattern = "\\bhelp\\b.*\\bme\\b";
-
- if (strs = regexp( ({"please, help me Sir John."}),
- , pattern
- ))
- {
+ if (strs = regexp(({ "Bitte helfen sie mir, Sir John." }),
+ "\\<helfen\\>.*\\<mir\\>")) {
if (sizeof(strs)
- write("It matches.\n");
+ write("Es passt.\n");
}
- The regular expression will test the given string (which is
- packed into an array) if there is something like "help ... me"
- inside of it.
+ Der regulaere Ausdruck wird den uebergebenen String (welcher in
+ einem Array verpackt wurde) daraufhin ueberpruefen, ob
+ sowas wie "helfen ... mir" darin vorkommt.
-HISTORY
- LDMud 3.3 added the optional <opt> argument.
+GESCHICHTE
+ LDMud 3.2.9 fuegte das Sonderzeichen '+' hinzu.
-SEE ALSO
- regexplode(E), regmatch(E), regreplace(E), regexp_package(E), sscanf(E),
- regexp(C)
+SIEHE AUCH
+ regexplode(E), regreplace(E), sscanf(E)
diff --git a/doc/efun/regreplace b/doc/efun/regreplace
index d459bb2..e0e7cf3 100644
--- a/doc/efun/regreplace
+++ b/doc/efun/regreplace
@@ -1,57 +1,51 @@
-SYNOPSIS
- string regreplace(string txt, string pattern,
- string|closure replacepattern, int flags)
-
-BESCHREIBUNG
- Die Funktion durchsucht den String txt nach einem Vorkommen
- des regulaeren Ausdrucks pattern, und ersetzt ihn durch
- den String replacepattern. (replacepattern kann auch eine Closure
- sein. Sie bekommt als argument den passenden Substring und muss
- den Ersatzstring zurueckliefern.)
-
- Im replacestring kann man via '&' auf den zum Suchausdruck
- passenden Teilstring im Original zugreifen. Mit \n (wobei n
- eine Ganzzahl ist) kann man auf den n-ten Unterausdruck
- des regulaeren Ausdrucks zugreifen. Um "&" oder "\\1" als
- Ersetzung zu erreichen, muss "\\&" bzw "\\\\1" verwendet werden.
-
- Beim Flag bestimmt ein gesetztes Bit 0, dass der Ausdruck so oft
- wie vorhanden ersetzt wird, sonst nur das erste Auftreten.
- Bit 1 bestimmt, ob der regulaere Ausdruck 'ed' oder 'sed' kompatibel
- ist (Bit geloescht) oder 'ex' kompatibel (gesetzt).
-
- Die Funktion wirkt wie s/pattern/replacepattern/flags in
- Editoren wie vi oder sed. Sie ist besonders gut geeignet um
- variable Strings zu ersetzen, im Gegensatz zu regexplode, wo
- man den String nur nach einem regulaeren Ausdruck zerlegen kann.
-
-BEISPIELE
- // ersetzt @@wer@@ durch den Namen des Objektes
- regreplace(str,"@@wer@@",(string)obj->name(WER,2),1)
-
- // ersetze alle doppelten Leerzeichen durch ein einzelnes
- regreplace(str, " *", " ", 1);
-
- // Sucht nach 'teilt Dir mit: ' und schliesst den nachfolgenden
- // Text mit <underline> und </underline> ein; bei jedem Auftreten.
-
- msgin = regreplace(msgin, "teilt Dir mit: (.*)",
- "teilt Dir mit: <underline>\\1</underline>",
- 1);
-
- // Ersetzt die <underline> html-Tags durch die vt100
- // Escape-Sequenzen fuer Unterstreichung
- txt = regreplace(txt, "<underline>", "<ESC>[5m", 1);
-
- // Ersetzt das Wort HOUSE in Kleinbuchstaben.
- txt = regreplace(txt, "HOUSE", #'lower_case, 1);
-
-BUGS:
- I have written that efun. It doesn't have BUGS. By definition.
- Well, in fact it crashed as I first tried it on running TAPPMud.
- *sigh*
- Marcus@TAPPMud
-
-SIEHE AUCH
- Verwandt: regexp(E), regexplode(E), sscanf(E)
- Aehnlich: replace_personal(L)
+SYNOPSIS
+ string regreplace(string txt, string pattern,
+ string|closure replacepattern, int flags)
+
+BESCHREIBUNG
+ Die Funktion durchsucht den String txt nach einem Vorkommen
+ des regulaeren Ausdrucks pattern, und ersetzt ihn durch
+ den String replacepattern. (replacepattern kann auch eine Closure
+ sein. Sie bekommt als argument den passenden Substring und muss
+ den Ersatzstring zurueckliefern.)
+
+ Im replacestring kann man via '&' auf den zum Suchausdruck
+ passenden Teilstring im Original zugreifen. Mit \n (wobei n
+ eine Ganzzahl ist) kann man auf den n-ten Unterausdruck
+ des regulaeren Ausdrucks zugreifen. Um "&" oder "\\1" als
+ Ersetzung zu erreichen, muss "\\&" bzw "\\\\1" verwendet werden.
+
+ Beim Flag bestimmt ein gesetztes Bit 0, dass der Ausdruck so oft
+ wie vorhanden ersetzt wird, sonst nur das erste Auftreten.
+ Bit 1 bestimmt, ob der regulaere Ausdruck 'ed' oder 'sed' kompatibel
+ ist (Bit geloescht) oder 'ex' kompatibel (gesetzt).
+
+ Die Funktion wirkt wie s/pattern/replacepattern/flags in
+ Editoren wie vi oder sed. Sie ist besonders gut geeignet um
+ variable Strings zu ersetzen, im Gegensatz zu regexplode, wo
+ man den String nur nach einem regulaeren Ausdruck zerlegen kann.
+
+BEISPIELE
+ string msgin;
+
+ /* Sucht nach 'teilt Dir mit: ' und schliesst den nachfolgenden
+ ** Text mit <underline> und </underline> ein; bei jedem Auftreten.
+ */
+ msgin = regreplace(msgin, "teilt Dir mit: (.*)",
+ "teilt Dir mit: <underline>\\1</underline>", 1);
+
+ /* Ersetzt die <underline> html-Tags durch die vt100
+ ** Escape-Sequenzen fuer Unterstreichung
+ */
+ txt = regreplace(txt, "<underline>", "<ESC>[5m", 1);
+
+ /* Ersetzt das Wort HOUSE in Kleinbuchstaben. */
+ txt = regreplace(txt, "HOUSE",
+ function string (string s) {return lower_case(s);},
+ 1);
+
+AUTOR
+ Marcus@TAPPMud schrieb die Original-efun (und die englische Manpage).
+
+SIEHE AUCH
+ regexp(E), regexplode(E), sscanf(E)
diff --git a/doc/efun/remove_action b/doc/efun/remove_action
index b939a51..8dee7bf 100644
--- a/doc/efun/remove_action
+++ b/doc/efun/remove_action
@@ -1,6 +1,6 @@
SYNOPSIS
- int remove_action(int|string verb);
- int remove_action(int|string verb, object obj);
+ int remove_action(int|string verb)
+ int remove_action(int|string verb, object obj)
BESCHREIBUNG
Wenn <verb> ein String ist: entferne das erste im Objekt <obj> durch
@@ -10,12 +10,14 @@
sonst 0.
Wenn <verb> ein Integer ist: wenn verb nicht 0 ist, entferne alle
- durch das Objekt <obj> definierten Kommandi. Wenn <obj> nicht
+ durch das Objekt <obj> definierten Kommandos. Wenn <obj> nicht
angegeben wird, wird standardmaessig this_player() verwendet. Gibt
- die Anzahl der entfernten Kommandi zurueck.
+ die Anzahl der entfernten Kommandos zurueck.
+
+GESCHICHTE
+ Eingefuehrt seit 3.2.1.
+ LDMud 3.2.10 fuehrte zusaetzlich die Moeglichkeit ein, alle Kommandos
+ auf einmal zu entfernen.
SIEHE AUCH
- Verwandt: add_action(E), init(E)
- Alternativ: AddAction(L), AddCmd(L)
-
-7.Aug 2007 Gloinson
+ add_action(E), move_object(E)
diff --git a/doc/efun/remove_call_out b/doc/efun/remove_call_out
index d5a22db..38f0795 100644
--- a/doc/efun/remove_call_out
+++ b/doc/efun/remove_call_out
@@ -1,21 +1,21 @@
SYNOPSIS
- int remove_call_out(string fun);
- int remove_call_out(closure fun);
+ int remove_call_out(string fun)
+ int remove_call_out(closure fun)
-BESCHREIBUNG:
- Entfernt den naechsten laufenden call_out() auf die Funktion <fun>
- im aktuellen Objekt bzw. den naechsten laufenden call_out() auf die
- Closure <fun>. Die verbleibende Zeit wird zurueckgeliefert.
+BESCHREIBUNG
+ Entfernt den naechsten anhaengigen call_out() auf die Funktion <fun>
+ im aktuellen Objekt bzw. den naechsten anhaengigen call_out() auf
+ die Closure <fun>. Die verbleibende Zeit wird zurueck geliefert.
- Wenn es keine laufenden call_out()s auf gibt, wird -1 zurueck
- geliefert.
+ Wenn es keine anhaengigen call_out()s auf <fun> gibt, wird -1
+ zurueckgeliefert.
-BEISPIEL
+BEISPIELE
Um alle call_out()s auf MeineFunktion() zu entfernen:
- while(remove_call_out("MeineFunktion") != -1); /* wiederhole */
+ while (remove_call_out("MeineFunktion") != -1); /* wiederhole */
-BUGS
+FEHLER
Das Entfernen von call_out()s auf Closures funktioniert nur, wenn der
exakt gleiche Wert fuer die Closure verwendet wird.
@@ -28,5 +28,9 @@
call_out(symbol_function("main", obj), 2);
remove_call_out(symbol_function("main", obj));
+GESCHICHTE
+ Das Entfernen eines call_out()s auf eine Closure wurde in 3.2.1@45
+ eingefuehrt.
+
SIEHE AUCH
call_out(E), call_out_info(E), find_call_out(E)
diff --git a/doc/efun/remove_input_to b/doc/efun/remove_input_to
index 7cd9393..40dbd68 100644
--- a/doc/efun/remove_input_to
+++ b/doc/efun/remove_input_to
@@ -1,12 +1,12 @@
SYNOPSIS
- int remove_input_to (object player);
- int remove_input_to (object player, string fun);
- int remove_input_to (object player, closure fun);
- int remove_input_to (object player, object fun);
- int remove_input_to (object player, object obj, string fun);
+ int remove_input_to(object player)
+ int remove_input_to(object player, string fun)
+ int remove_input_to(object player, closure fun)
+ int remove_input_to(object player, object fun)
+ int remove_input_to(object player, object obj, string fun)
BESCHREIBUNG
- Entfernt ein haengiges input_to() aus dem interaktiven Playerobjekt.
+ Entfernt ein anhaengiges input_to() aus dem interaktiven Playerobjekt.
Wenn <fun> nicht angegeben ist, wird der zuletzt aufgerufen input_to()
entfernt.
@@ -26,12 +26,12 @@
kein haengiges input_to() auf dem Objekt).
BEISPIELE
- Entfernt alle haengigen input_to()s des aktuellen Spielers, falls
- vorhanden:
- while(remove_input_to(this_interactive()));
+ Entfernt alle anhaengigen input_to()s des aktuellen Spielers,
+ falls vorhanden:
+ while (remove_input_to(this_interactive()));
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.9.
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.9 / 3.3.119.
SIEHE AUCH
input_to(E), find_input_to(E), input_to_info(E),
diff --git a/doc/efun/remove_interactive b/doc/efun/remove_interactive
index 0d6d200..269bac3 100644
--- a/doc/efun/remove_interactive
+++ b/doc/efun/remove_interactive
@@ -1,13 +1,14 @@
SYNOPSIS
- void remove_interactive(object ob)
+ void remove_interactive(object obj)
-DESCRIPTION
- Close the connection to the interactive object ob.
+BESCHREIBUNG
+ Schliesst die Verbindung zum interaktiven Objekt <obj>.
- For the time of the LPC execution, the object is only marked
- internally as 'about to be closed', meaning that while all
- output will be redirected to stdout, the actual network connection
- will continue to exist until the LPC execution ends.
+ Waehrend der Ausfuehrung der LPC Anweisung ist das Objekt intern als
+ 'about to be closed' ('wird geschlossen') markiert. Das heisst, dass
+ der Output an stdout umgeleitet wird, waehrend die eigentliche
+ Netzwerkverbindung bestehen bleibt, bis die LPC-Anweisung vollstaendig
+ abgearbeitet wurde.
-SEE ALSO
+SIEHE AUCH
connect(M), logon(A), disconnect(M)
diff --git a/doc/efun/rename b/doc/efun/rename
index 2f74492..39c083d 100644
--- a/doc/efun/rename
+++ b/doc/efun/rename
@@ -1,5 +1,5 @@
SYNOPSIS
- int rename(string from, string to);
+ int rename(string from, string to)
BESCHREIBUNG
Die Efun rename() verschiebt <from> nach <to>. Wenn <from> ein File
@@ -18,7 +18,7 @@
Bei Erfolg liefert rename() 0, bei Fehlschlag einen Wert ungleich 0.
-BEISPIEL
+BEISPIELE
rename("/players/wizard/obj.c", "/players/wizard/newobj.c");
SIEHE AUCH
diff --git a/doc/efun/rename_object b/doc/efun/rename_object
index 2d31674..bbde744 100644
--- a/doc/efun/rename_object
+++ b/doc/efun/rename_object
@@ -1,10 +1,14 @@
-SYNOPSIS:
- void rename_object (object ob, string new_name);
+GESCHUETZT
+SYNOPSIS
+ void rename_object(object obj, string neuer_name)
-DESCRIPTION:
- Give the current object a new object_name. Causes a privilege
- violation. The new name must not contain a # character, except
- at the end, to avoid confusion with clone numbers.
+BESCHREIBUNG
+ Gibt dem Objekt <obj> einen neuen Namen <neuer_name> und verursacht
+ eine Schutzverletzung (einen Fehler). <neuer_name> darf kein #
+ enthalten, ausser am Ende, um Verwirrung mit Clones zu vermeiden.
-SEE ALSO:
- creator(E), object_name(E)
+GESCHICHTE
+ Eingefuehrt in 3.2@55.
+
+SIEHE AUCH
+ creator(E), object_name(E), load_name(E)
diff --git a/doc/efun/restore_object b/doc/efun/restore_object
index fa991d6..3103e7d 100644
--- a/doc/efun/restore_object
+++ b/doc/efun/restore_object
@@ -1,6 +1,6 @@
SYNOPSIS
- int restore_object(string name);
- int restore_object(string str); (VORLAEUFIG)
+ int restore_object(string name)
+ int restore_object(string str)
BESCHREIBUNG
Laedt Werte von Variablen fuer das aktuelle Objekt aus der Datei
@@ -12,8 +12,9 @@
Wenn Variablen aus einer Datei geladen werden, kann <name> mit .c
enden. Diese Dateiendung wird vom Treiber entfernt. Das Masterobjekt
- fuegt dem Dateinamen ein .o hinzu. Die Gueltigkeit des Dateinamens
- wird mit der Funktion check_valid_path() automatisch ueberprueft.
+ fuegt vermutlich dem Dateinamen ein .o hinzu. Die Gueltigkeit des
+ Dateinamens wird mit der Funktion check_valid_path() automatisch
+ ueberprueft.
Die Funktion gibt 1 zurueck, wenn die Variablen erfolgreich geladen
wurden und 0, wenn es nichts zu laden gab.
@@ -21,7 +22,7 @@
Variablen mit dem Typenvermerk nosave werden nicht geladen, zum
Beispiel nosave int xxx;
- Closures aus Lfuns, Variablne und simul_efuns werden nur geladen,
+ Clousers aus Lfuns, Variablne und simul_efuns werden nur geladen,
wenn sie gefunden werden. Falls nicht, werden sie mit dem Wert '0'
geladen.
@@ -33,13 +34,15 @@
einzigartigen Namen bei nicht-statischen Variablen. So wird auch das
manuelle Lesen oder Editieren des Savefiles einfacher.
-AENDERUNGEN
+GESCHICHTE
Das direkte Laden aus einem String wurde in LDMud 3.2.8 eingefuehrt,
wird aber moeglicherweise in Zukunft in eine separate Efun
ausgelagert.
LDMud 3.2.9 ergaenzte die Funktion um die Moeglichkeit,
NonLambda-Closures, Symbole und gequotete Arrays zu laden,
indem ein neues Format fuer das Savefile verwendet wird.
+ LDMud 3.5.0 unterstuetzt das Einlesen von Formatversion 2 mit hoeherer
+ Praezision der Gleitkommazahlen.
SIEHE AUCH
save_object(E), restore_value(E), valid_read(M)
diff --git a/doc/efun/restore_value b/doc/efun/restore_value
index fa44b18..773613a 100644
--- a/doc/efun/restore_value
+++ b/doc/efun/restore_value
@@ -1,17 +1,23 @@
SYNOPSIS
- mixed restore_value(string str);
+ mixed restore_value(string str)
BESCHREIBUNG
Wandelt die String-Entsprechung <str> eines Wertes zurueck in den Wert
selbst und gibt diesen Wert zurueck. <str> ist ein String, wie er von
- save_value() erzeugt wird. Die Spezifikation des Speicherformates
- '#x:y' ist optional.
+ save_value() erzeugt wird.
+
+ Die Spezifikation des Speicherformates '#x:y' ist optional. Allerdings
+ nimmt der Driver in diesem Fall das aelteste Format (Version 0) an.
+ In neu gespeicherten Werten sollte die Formatspezifikation daher nicht
+ als optional angesehen werden.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.8.
Mit LDMud 3.2.9 kam das Laden von Non-Lambda Closures, Symbolen und
gequoteten Arrays hinzu, wozu ein neues Format fuer die Speicherdatei
verwendet wird.
-
+ LDMud 3.5.0 unterstuetzt das Einlesen von Formatversion 2 mit hoeherer
+ Praezision der Gleitkommazahlen.
+
SIEHE AUCH
save_value(E), restore_object(E), save_object(E)
diff --git a/doc/efun/reverse b/doc/efun/reverse
index 90c7890..af81403 100644
--- a/doc/efun/reverse
+++ b/doc/efun/reverse
@@ -1,31 +1,32 @@
SYNOPSIS
- inti reverse (int arg)
+ int reverse (int arg)
string reverse (string arg)
+ bytes reverse (bytes arg)
mixed * reverse (mixed * arg)
mixed * reverse (mixed * & arg)
-DESCRIPTION
- Kehrt die Reihenfolge des Inhaltes von Array oder String <arg>
- um und liefert den neuen Wert als Resultat.
+BESCHREIBUNG
+ Kehrt die Reihenfolge des Inhaltes eines Arrays, Strings oder
+ Bytefolge <arg> um und liefert den neuen Wert als Resultat.
Ist <arg> eine Zahl, wird die Reihenfolge der Bits in <arg> umgekehrt.
Wenn in der Referenz-Variante verwendet, wird das Argumentarray selber
invertiert und auch zurueckgegeben.
-EXAMPLES
- reverse (0x306a) - return 0x560c0000
+BEISPIELE
+ reverse (0x306a) - gibt 0x560c0000 zurueck
- reverse ("test") - return "tset"
+ reverse ("test") - gibt "tset" zurueck
mixed * a = ({ 1, 2 });
- reverse(a) - returns ({ 2, 1 }), a ist unveraendert.
- reverse(&a) - returns ({ 2, 1 }), a ist nun ({ 2, 1 })
+ reverse(a) - gibt ({ 2, 1 }) zurueck, a bleibt unveraendert.
+ reverse(&a) - gibt ({ 2, 1 }) zurueck, a ist nun ({ 2, 1 })
-BUGS
- Referenz-Teilarrays wie reverse(&(a[1..2])) sind nicht unterstuetzt.
+FEHLER
+ Referenz-Teilarrays wie reverse(&(a[1..2])) werden nicht unterstuetzt.
GESCHICHTE
Eingefuehrt in LDMud 3.3.529.
LDMud 3.3.532 fuegte die Bitumkehr von Zahlen ein.
-SEE ALSO
+SIEHE AUCH
diff --git a/doc/efun/rm b/doc/efun/rm
index d1b59e3..cc4e5cf 100644
--- a/doc/efun/rm
+++ b/doc/efun/rm
@@ -1,5 +1,5 @@
SYNOPSIS
- int rm(string file);
+ int rm(string file)
BESCHREIBUNG
Loescht die Datei <file>. Gibt 0 zurueck, wenn etwas nicht geklappt
diff --git a/doc/efun/rmdir b/doc/efun/rmdir
index 19af329..93c7a37 100644
--- a/doc/efun/rmdir
+++ b/doc/efun/rmdir
@@ -1,5 +1,5 @@
SYNOPSIS
- int rmdir(string dir);
+ int rmdir(string dir)
BESCHREIBUNG
Loescht das Verzeichnis <dir>. Liefert 1 bei Erfolg, 0 bei Misserfolg.
diff --git a/doc/efun/rmember b/doc/efun/rmember
index dc1962c..5709efe 100644
--- a/doc/efun/rmember
+++ b/doc/efun/rmember
@@ -1,18 +1,19 @@
SYNOPSIS
- int rmember(mixed *array, mixed elem [, int start]);
- int rmember(string str, int elem [, int start]);
+ int rmember(mixed *array, mixed elem [, int start])
+ int rmember(string str, int elem [, int start])
+ int rmember(bytes str, int elem [, int start])
BESCHREIBUNG
- Liefert fuer Arrays und Strings den Index des letzten Auftretens des
- Arguments <elem> im Array <*array> bzw. im String <str>. Wenn <elem>
- nicht gefunden wird, liefert die Funktion -1 zurueck.
+ Liefert fuer Arrays, Strings und Bytefolgen den Index des letzten
+ Auftretens des Arguments <elem> im Array <*array>, im String bzw.
+ in der Bytefolge <str>. Wenn <elem> nicht gefunden wird, liefert
+ die Funktion -1 zurueck.
Ist <start> als Zahl >= 0 gegeben, beginnt die Suche ab der
angegebenen Position. Eine Startposition groesser als die
Laenge des Strings/Arrays liefert stets das Resultat -1.
-
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.10.
LDMud 3.3.556 fuegte den <start>-Parameter hinzu.
diff --git a/doc/efun/rusage b/doc/efun/rusage
index 8dc2523..4de6179 100644
--- a/doc/efun/rusage
+++ b/doc/efun/rusage
@@ -1,6 +1,6 @@
OPTIONAL
SYNOPSIS
- int *rusage();
+ int * rusage()
BESCHREIBUNG
Liefert ein Array mit Informationen ueber den momentanen
@@ -11,8 +11,8 @@
rus.ru_oublock, rus.ru_msgsnd, rus.ru_msgrcv, rus.ru_nsignals,
rus.ru_nvcsw, rus.ru_nivcsw
-ANMERKUNG
- Diese Funktion ist optional.
+ANMERKUNGEN
+ Diese Funktion ist optional.
SIEHE AUCH
sys/resource.h(Unix)
diff --git a/doc/efun/save_value b/doc/efun/save_value
index d9e1486..11de053 100644
--- a/doc/efun/save_value
+++ b/doc/efun/save_value
@@ -1,5 +1,6 @@
SYNOPSIS
- string save_value(mixed wert [, int format]);
+ string save_value(mixed wert)
+ string save_value(mixed wert, int format)
BESCHREIBUNG
Schreibt <wert> in einen String, der sich mit restore_value()
@@ -11,6 +12,12 @@
0: das Originalformat nach Amylaar's LPMud und LDMud <=3.2.8
1: LDMud >= 3.2.9: Non-Lambda Closures, Symbole und gequotete
Arrays koennen gespeichert werden
+ 2: LDMUd >= 3.5.0: Gleitkommazahlen werden in einem neuen Format
+ geschrieben, welches kompakter ist die Gleitkommazahlen aus
+ 3.5.x verlustfrei speichern kann.
+
+ Es wird empfohlen, die Angabe des Formats wegzulassen oder in Version
+ 2 (oder hoeher) zu speichern.
Der erzeugte String besteht aus zwei Zeilen, die jeweils mit einem
Zeilenumbruch enden. Die erste Zeile beschreibt das Format, in dem der
@@ -20,12 +27,13 @@
Das Format zum Schreiben des Wertes in den String entspricht dem von
save_object() und restore_object() verwendeten Format.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.8.
LDMud 3.2.9. ergaenzte die Funktion um die Moeglichkeit, Non-Lambda
Closures, Symbole und gequotete Arrays zu speichern. Dazu wurde
ein neues Format fuer den String eingefuehrt.
LDMud 3.2.10 fuehrte das Argument <format> ein.
+ LDMud 3.5.0 fuehrte Formatversion 2 ein.
SIEHE AUCH
restore_value(E), restore_object(E), save_object(E)
diff --git a/doc/efun/send_erq b/doc/efun/send_erq
index d3521e1..fd1d521 100644
--- a/doc/efun/send_erq
+++ b/doc/efun/send_erq
@@ -1,6 +1,8 @@
GESCHUETZT
SYNOPSIS
- int send_erq(int request, string|int *data, closure callback);
+ #include <erq.h>
+
+ int send_erq(int request, bytes|int *data, closure callback)
BESCHREIBUNG
Eine Anfrage vom Typ <request> (standardmaessig 0) wird mit Inhalt
@@ -11,14 +13,19 @@
void <closure>(int *response_data, int len);
- <data> kann entweder ein String oder ein Array von Integers sein,
- wobei im zweiten Fall die Zahlen als Zeichen interpretiert werden.
- Die unterschiedlichen Anfragen sind in /sys/erq.h definiert.
+ <data> kann entweder eine Bytefolge oder ein Array von Integers sein,
+ wobei im zweiten Fall die Zahlen als Bytes interpretiert werden.
+ Die unterschiedlichen Anfragen sind in <erq.h> definiert.
Die Funktion liefert 0 zurueck, wenn das Senden fehlgeschlagen ist,
etwas anderes sost.
Die Funktion verursacht eine Schutzverletzung "erq".
+GESCHICHTE
+ Eingefuehrt in 3.2.1@61.
+ Geschuetzt in 3.2.1@84.
+ LDMud 3.3.318 fuehrte das ERQ_CB_STRING-Flag ein.
+
SIEHE AUCH
attach_erq_demon(E), erq(C)
diff --git a/doc/efun/send_udp b/doc/efun/send_udp
index 8ad0c33..dd5d2bc 100644
--- a/doc/efun/send_udp
+++ b/doc/efun/send_udp
@@ -1,12 +1,39 @@
-SYNOPSIS:
- int send_udp(string host, int port, string message)
+GESCHUETZT
+SYNOPSIS
+ int send_udp(string host, int port, bytes message)
+ int send_udp(string host, int port, int *message)
-DESCRIPTION:
- Sends The message in an UDP packet to the given host and port
- number. Causes a privilege violation.
- Returns 1 on success, 0 on failure.
+BESCHREIBUNG
+ Sendet die Nachricht <message> als UDP Paket an den angegebenen Host
+ bzw. Port.
-SEE ALSO:
- receive_udp(M)
+ Die Efun verursacht eine Schutzverletzung. Wenn USE_DEPRECATED gesetzt
+ ist, wird zuerst send_imp() ausgeloest, anschliessend - wenn send_imp()
+ fehlschlaegt - send_udp(). Wenn USE_DEPRECATED nicht gesetzt ist,
+ wird nur send_udp() ausgeloest.
-29.10.2006 Zesstra
+ Die Funktion liefert 1 bei Erfolg, sonst 0.
+
+ MERKE: auf manchen Systemen wird ein fehlgeschlagener Versuch von
+ send_udp() nicht registriert, bis das naechste send_udp() aufgerufen
+ wird. Das spaetere send_udp() kann in diesem Fall 0 zurueck liefern,
+ obwohl es erfolgreich war.
+
+FEHLER
+ Ist <host> ein qualifizierter Hostname (anstelle einer IP Adresse),
+ blockiert die Ausfuehrung fuer die Dauer der Namensaufloesung.
+
+ANMERKUNGEN
+ Auf manchen Systemen wird ein fehlgeschlagener Versuch von send_udp()
+ nicht registriert, bis das naechste send_udp() aufgerufen wird.
+ Das spaetere send_udp() kann in diesem Fall 0 zurueckliefern, obwohl
+ es erfolgreich war.
+
+GESCHICHTE
+ LDMud 3.2.9 benannte diese Efun von send_imp() und veraenderte auch
+ die Schutzverletzung (bzw. die entsprechende Fehlermeldung) und
+ die Apply Namen. Die alte Version ist verfuegbar, wenn im
+ Treiber USE_DEPRECATED gesetzt ist.
+
+SIEHE AUCH
+ query_udp_port(E), receive_udp(M)
diff --git a/doc/efun/set_auto_include_string b/doc/efun/set_auto_include_string
index 247e50d..7faeb9c 100644
--- a/doc/efun/set_auto_include_string
+++ b/doc/efun/set_auto_include_string
@@ -1,19 +1,21 @@
-DEPRECATED
-SYNOPSIS:
- void set_auto_include_string(string arg)
+GESCHUETZT, VERALTET
+SYNOPSIS
+ void set_auto_include_string(string arg)
-DESCRIPTION:
+BESCHREIBUNG
+ <arg> wird automatisch in jedes neu kompilierte LPC-Objekt
+ eingebunden. Das ist nuetzlich, um globale Definitionen, z.B.
+ #pragma combine_string oder #pragma strict_types durchzusetzen.
+ Das aufrufende Objekt muss durch das Masterobjekt privilegiert
+ sein.
- The arg will be automatically included into every compiled LPC
- object. This is useful to enforce global definitions, e.g.
- ``#pragma combine_strings'' or ``#pragma strict_types''. The
- calling objectneeds to be privileged by the master object.
+ Der auto_include_string wird geloescht, wenn das Masterobjekt
+ neu geladen wird.
-NOTE:
- Not available in LDMud 3.3.x
- Please use the driver hook H_AUTO_INCLUDE in LDMud > 3.2.9
+GESCHICHTE
+ LDMud 3.2.9 ersetzte set_auto_include_string() durch den Driver
+ Hook H_AUTO_INCLUDE. Diese alte Version ist nur verfuegbar,
+ wenn der Treiber mit USE_DEPRECATED kompiliert wurde.
-SEE ALSO:
- privilege_violation(M), pragma(LPC)
-
-29.10.2006 Zesstra
+SIEHE AUCH
+ set_driver_hook(E), privilege_violation(M), pragma(LPC), master(M)
diff --git a/doc/efun/set_bit b/doc/efun/set_bit
index 847c6b5..758bdc6 100644
--- a/doc/efun/set_bit
+++ b/doc/efun/set_bit
@@ -1,5 +1,5 @@
SYNOPSIS
- string set_bit(string str, int n);
+ string set_bit(string str, int n)
BESCHREIBUNG
Liefert einen neuen String, bei dem das Bit <n> in <str> gesetzt
@@ -12,7 +12,7 @@
Der neue String wird automatisch verlaengert, falls noetig.
-BEISPIEL
+BEISPIELE
string s;
s=set_bit("?",5);
diff --git a/doc/efun/set_environment b/doc/efun/set_environment
index fe3a969..507a46d 100644
--- a/doc/efun/set_environment
+++ b/doc/efun/set_environment
@@ -1,20 +1,18 @@
+GESCHUETZT
SYNOPSIS
- void set_environment(object item, object env)
+ void set_environment(objet was, object env)
-DESCRIPTION
- The item is moved into its new environment env, which may be 0.
- This efun is to be used in the move_object() hook, as it does
- nothing else than moving the item - no calls to init() or such.
+BESCHREIBUNG
+ Das Objekt <was> wird in die Umgebung <env> bewegt, welche auch 0
+ sein kann. Diese Efun wird im move_object() Hook verwendet. Sie macht
+ nichts, ausser das Objekt <was> zu bewegen - kein Aufruf von init()
+ oder sonstiges.
- Don't use it in your own objects!
+ Sprich: nicht in eigenen Objekten verwenden!
-HISTORY
- Introduced in 3.2.1@1 as 'efun308()', renamed to 'set_environment()'
- in 3.2.6 and LP "03.02.1@150".
+GESCHICHTE
+ Eingefuehrt in 3.2.1.@1 als 'efun308()'.
+ In 3.2.6 umbenannt zu 'set_environment()'.
-SEE ALSO
- remove(A), init(A), move_object(E), transfer(E), hooks(C),
- native(C)
-
-29.10.2006 Zesstra
-
+SIEHE AUCH
+ remove(A), init(A), move_object(E), transfer(E), hooks(C), native(C)
diff --git a/doc/efun/set_extra_wizinfo b/doc/efun/set_extra_wizinfo
index f0095c9..69efe15 100644
--- a/doc/efun/set_extra_wizinfo
+++ b/doc/efun/set_extra_wizinfo
@@ -1,22 +1,25 @@
+GESCHUETZT
SYNOPSIS
- void set_extra_wizinfo (object wiz, mixed extra)
- void set_extra_wizinfo (string wiz, mixed extra)
- void set_extra_wizinfo (int wiz, mixed extra)
+ void set_extra_wizinfo(object wiz, mixed extra)
+ void set_extra_wizinfo(string wiz, mixed extra)
+ void set_extra_wizinfo(int wiz, mixed extra)
-DESCRIPTION
- Set the value <extra> as the 'extra' information for the wizlist
- entry of <wiz>.
+BESCHREIBUNG
+ Setzt den Wert <extra> als Eintrag im 'Extra' Feld in der Wizlist fuer
+ den Gott <wiz>.
- If <wiz> is an object, the entry of its creator (uid) is used.
- If <wiz> is a string (a creator aka uid), it names the entry
- to use.
- If <wiz> is the number 0, the data is set in the default wizlist
- entry. It can be used to store data for the lifetime of this
- driver run, like the time of the last reboot.
+ Ist <wiz> ein Objekt, wird der Eintrag vom Erzeuger des Objekts (also
+ dessen UID) verwendet.
+ Ist <wiz> ein String (ein Erzeuger bzw. eine UID), bezeichnet dieser
+ den Eintrag, dem <extra> zugewiesen wird.
+ Ist <wiz> 0, wird <extra> im Standardeintrag der Wizlist gesetzt.
+ Diese Funktion kann man verwenden, um Daten fuer die gesamte Laufzeit
+ des Treibers bis zum naechsten Shutdown zu speichern, zum Beispiel den
+ Zeitpunkt des letzten Reboot.
- The <extra> argument may be any value.
+ Das Argument <extra> kann jeden Wert enthalten.
- The function causes a privilege violation.
+ Die Funktion verursacht eine Schutzverletzung.
-SEE ALSO
+SIEHE AUCH
get_extra_wizinfo(E), set_extra_wizinfo_size(E), wizlist_info(E)
diff --git a/doc/efun/set_this_object b/doc/efun/set_this_object
index 2afda56..5c4a42d 100644
--- a/doc/efun/set_this_object
+++ b/doc/efun/set_this_object
@@ -1,6 +1,6 @@
GESCHUETZT
SYNOPSIS
- void set_this_object(object objekt-an-stelle-von-originalobjekt);
+ void set_this_object(object objekt-an-stelle-von-originalobjekt)
BESCHREIBUNG
Dies ist eine geschuetzte Funktion, die nur vom Master-Objekt und im
@@ -12,11 +12,12 @@
anderen Objekten, die einen call_other() Aufruf machen.
Der Effekt von set_this_object() bleibt bestehen, bis ein externer
- Funktionsaufruf abgeschlossen ist oder bis zu einem erneuten
- set_this_object(). Waehrend der Ausfuehrung von Code im Master-Objekt
- oder im Simul-Efun-Objekt ist set_this_object() garantiert, auch wenn
- this_object() durch set_this_object() veraendert wird. Die gilt
- nicht fuer Funktionen, die aus anderen Programmen inheritet werden.
+ Funktionsaufruf abgeschlossen ist oder bis zu einem erneuten Aufruf
+ von set_this_object(). Waehrend der Ausfuehrung von Code im
+ Master-Objekt oder im Simul-Efun-Objekt ist set_this_object()
+ garantiert, auch wenn this_object() durch set_this_object()
+ veraendert wird. Die gilt nicht fuer Funktionen, die aus anderen
+ Programmen geerbt werden.
Diese Funktion darf nur mit hoechster Sorgfalt verwendet werden, um
Inkonsistenzen zu vermeiden. Nach einem Aufruf von set_this_object()
@@ -26,10 +27,10 @@
durch call_other()) ist unzulaessig und wird aktiv verhindert.
Erlaubt sind call_other(), map(), der Zugriff auf lokale Variablen
- (die auch Pointer auf globale Arrays enthalten duerfen), einfache
+ (die auch Pointers auf globale Arrays enthalten duerfen), einfache
Arithmetik und der Zuweisungs-Operator.
-BUGS
+FEHLER
Es ist momentan nicht moeglich, das originale gueltige Objekt wieder
herzustellen. Anstelle von:
@@ -41,8 +42,7 @@
muss das ueber einen Umweg geloest werden:
- private void tuwas(object dings)
- {
+ private void tuwas(object dings) {
set_this_object(dings);
<irgendwelcher code>
}
@@ -52,9 +52,9 @@
Manche Leute bezeichnen das als Feature.
-AENDERUNGEN
+GESCHICHTE
LDMud 3.2.10 verhindert aktiv die Referenz auf globale Variablen und
- Funktionsaufrufe nach Adresse, waehren set_this_object() gilt.
+ Funktionsaufrufe nach Adresse, waehrend set_this_object() gilt.
SIEHE AUCH
this_object(E), set_this_player(E)
diff --git a/doc/efun/set_this_player b/doc/efun/set_this_player
index 085c529..91b4124 100644
--- a/doc/efun/set_this_player
+++ b/doc/efun/set_this_player
@@ -1,6 +1,6 @@
GESCHUETZT
SYNOPSIS
- void set_this_player(object ob);
+ void set_this_player(object ob)
BESCHREIBUNG
Aendert den momentanen Kommandogeber zu <ob>. Dabei kann <ob> auch
@@ -12,18 +12,7 @@
Es ist sonst einfach, die Sicherheit eines Muds mit Hilfe dieser
Efun zu untergraben.
- Die Efun ist nur in 3.2.1 verfuegbar. Eine moegliche Simulation fuer
- 3.2 koennte etwa so aussehen:
-
- void set_this_player(object ob)
- {
- /* Insert your privilege checks here */
- if (living(ob))
- funcall(bind_lambda(#'enable_commands, ob));
- }
- (suggested by Mark Lewis (Nostradamus@Zebedee))
-
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.1.
LDMud 3.2.6 fuehrte die 0 als moeglichen Parameter ein.
diff --git a/doc/efun/sgn b/doc/efun/sgn
index 2331c0d..938ecf6 100644
--- a/doc/efun/sgn
+++ b/doc/efun/sgn
@@ -1,5 +1,5 @@
SYNOPSIS
- int sgn (int|float arg)
+ int sgn(int|float arg)
BESCHREIBUNG
Liefert das Vorzeichen des Argumentes.
@@ -10,7 +10,7 @@
0 0
< 0 -1
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
diff --git a/doc/efun/sha1 b/doc/efun/sha1
new file mode 100644
index 0000000..4fe4f06
--- /dev/null
+++ b/doc/efun/sha1
@@ -0,0 +1,33 @@
+SYNOPSIS
+ string sha1(string arg [, int iterations])
+ string sha1(bytes arg [, int iterations])
+ string sha1(int * arg [, int iterations])
+
+BESCHREIBUNG
+ Berechnet den SHA1-Hashwert von <arg>.
+ Das Argument kann ein String, eine Bytefolge oder ein Array von
+ Zahlen sein (die als Folge von Bytes betrachtet wird, wobei
+ immer nur die untersten 8 Bits Verwendung finden). Falls ein String
+ uebergeben wurde, so wird dieser in eine UTF-8-Bytefolge konvertiert
+ und davon der Hash berechnet.
+
+ Ist das <iterations> Argument eine Zahl groesser 0, berechnet der
+ Driver den Digest mit diese Anzahl an Wiederholungen. Fehlt die
+ Angabe, fuehrt der Driver die Digest-Berechnung einmal aus.
+
+ Jede Iteration kostet 5 Evalution-Ticks.
+
+BEISPIELE
+ string s;
+
+ s = sha1("Hello");
+ s = sha1( ({ 'H', 'e', 'l', 'l', 'o' })
+
+GESCHICHTE
+ Eingefuehrt in LDMud 3.3.523.
+ LDMud 3.3.712 fuehrte Zaehlenarrays als Argument ein.
+ LDMud 3.3.717 fuehrte die Iterations-basierte Evaluationskosten ein.
+ Seit LDMud 3.3.719 abgeloest durch hash().
+
+SIEHE AUCH
+ crypt(E), md5(E)
diff --git a/doc/efun/shadow b/doc/efun/shadow
new file mode 100644
index 0000000..16ab11e
--- /dev/null
+++ b/doc/efun/shadow
@@ -0,0 +1,119 @@
+SYNOPSIS
+ object shadow(object obj, int flag)
+
+BESCHREIBUNG
+ Damit wird das aktuelle Objekt dem Objekt <obj> als Shadow
+ uebergeworfen. Bei Erfolg liefert es 1, sonst 0 zurueck.
+
+ Das aufrufende Objekt muss vom Master-Objekt die Erlaubnis haben,
+ als Shadow zu wirken. Normalerweise kann einem Objekt, das
+ query_prevent_shadow() == 1 zurueck liefert, kein Shadow
+ uebergeworfen werden. In diesem Fall liefert shadow() 0 zurueck,
+ sonst das Objekt, dem der Shadow uebergeworfen wurde.
+
+ shadow() schlaeft fehl, wenn:
+ - der Shadow vesucht, eine "nomask" definierte Funktion zu
+ ueberlagern,
+ - wenn im Praeprozessor #pragma no_shadow gesetzt ist,
+ - wenn das aufrufende Objekt bereits ein Shadow ist,
+ - wenn das aufrufende Objekt selbst einen Shadow uebergeworfen hat,
+ - wenn das aufrufende Objekt ueber ein Environment verfuegt,
+ - wenn das Zielobjekt <obj> selbst ein Shadow ist.
+
+ Wenn ein Objekt A einem Objekt B als Shadow uebergeworfen wird,
+ werden alle call_other() Aufrufe fuer B an A umgeleitet. Wenn A die
+ Funktion, die von call_other() aufgerufen wird, nicht definiert hat,
+ wird der Aufruf an B weitergeleitet. Es gibt also nur ein Objekt,
+ welches call_other() Aufrufe fuer B machen kann: das Objekt A. Nicht
+ einmal das Objekt B kann einen call_other() auf sich selbst machen.
+ Hingegen werden alle normalen (internen) Funktionsaufrufe innerhalb
+ von B werden wie gewohnt innerhalb von B bearbeitet.
+
+BEISPIELE
+ Mit drei Objekten a.c, b.c und c.c:
+
+ --- a.c ---
+ void fun() {
+ debug_message(sprintf("%O [a] fun()\n", this_object()));
+ }
+ void fun3() {
+ debug_message(sprintf("%O [a] fun3()\n", this_object()));
+ }
+
+ --- b.c ---
+ int fun() {
+ debug_message(sprintf("%O [b] fun()\n", this_object()));
+ find_object("a")->fun();
+ }
+ void fun2() {
+ debug_message(sprintf("%O [b] fun2()\n", this_object()));
+ find_object("a")->fun3();
+ this_object()->fun3();
+ }
+
+ void do_shadow(object target) { shadow(target, 1); }
+
+ --- c.c ---
+ int fun() {
+ debug_message(sprintf("%O [c] fun()\n", this_object()));
+ find_object("a")->fun();
+ }
+ void fun3() {
+ debug_message(sprintf("%O [c] fun3()\n", this_object()));
+ }
+ void do_shadow(object target) { shadow(target, 1); }
+
+ Es wird nun folgender Code aufgerufen:
+
+ object a, b, c;
+
+ a = load_object("a");
+ b = load_object("b");
+ c = load_object("c");
+ b->do_shadow(a);
+ c->do_shadow(a);
+ debug_message("--- a->fun() ---\n");
+ a->fun();
+ debug_message("--- b->fun() ---\n");
+ b->fun();
+ debug_message("--- c->fun() ---\n");
+ c->fun();
+ debug_message("--- b->fun2() ---\n");
+ b->fun2();
+
+ Das ergibt diesen Output:
+
+ --- a->fun() ---
+ /c [c] fun()
+ /b [b] fun()
+ /a [a] fun()
+ --- b->fun() ---
+ /c [c] fun()
+ /b [b] fun()
+ /a [a] fun()
+ --- c->fun() ---
+ /c [c] fun()
+ /b [b] fun()
+ /a [a] fun()
+ --- b->fun2() ---
+ /b [b] fun2()
+ /a [a] fun3()
+ /c [c] fun3()
+
+ Merke: der erste Aufruf in b::fun2() findet zuerst c::fun3()!
+ Der Grund ist, dass fuer Aufrufe aus b fuer a der Treiber
+ annimmt, dass alle Shadows vor c schon ihre Chance hatten. Der
+ zweite Aufruf hingegen ergeht an b selbst, das der Treiber als
+ vom Shadow c ueberlagert erkennt.
+
+GESCHICHTE
+ Bis 3.2.1@46 fuehrte die Zerstoerung eines Objekts, dem ein Shadow
+ uebergeworfen war, auch zur Zerstoerung aller seiner Shadows.
+ Seit 3.2.1@47 ueberleben Shadows die Zerstoerung des Objektes, dem
+ sie uebergeworfen sind (ausser, die wird von prepare_destruct()
+ manuell erledigt).
+ Seit LDMud 3.2.8 koenne sich Objekte dank #pragma no_shadow gezielt
+ davor schuetzen, einen Shadow uebergeworfen zu bekommen.
+
+SIEHE AUCH
+ query_shadowing(E), unshadow(E), query_allow_shadow(M)
diff --git a/doc/efun/shutdown b/doc/efun/shutdown
index 46ef0af..03e7ec5 100644
--- a/doc/efun/shutdown
+++ b/doc/efun/shutdown
@@ -1,6 +1,6 @@
SYNOPSIS
- void shutdown();
- void shutdown(int exit_code);
+ void shutdown()
+ void shutdown(int exit_code)
BESCHREIBUNG
Faehrt das Mud herunter. Diese Funktion darf nie verwendet werden!
@@ -14,5 +14,10 @@
wenn man sie nicht verwenden darf. Sorry, das darf hier nicht
bekannt gegeben werden. Streng geheim.
+ Diese efun ist privilegiert.
+
+GESCHICHTE
+ LDMud 3.2.11 fuehrte das 'exit_code' Argument ein.
+ LDMud 3.5.0 machte die efun privilegiert.
SIEHE AUCH
- break_point(E), swap(E)
+ break_point(E), swap(E), privilege_violation(M)
diff --git a/doc/efun/sin b/doc/efun/sin
index 6eab7ec..cf8f981 100644
--- a/doc/efun/sin
+++ b/doc/efun/sin
@@ -4,5 +4,8 @@
BESCHREIBUNG
Liefert den Sinus des Argumentes.
+GESCHICHTE
+ LDMud 3.2.9: Ganzzahlen (Integers) als Argument hinzugefuegt.
+
SIEHE AUCH
asin(E), cos(E), acos(E), tan(E), atan(E), atan2(E)
diff --git a/doc/efun/sizeof b/doc/efun/sizeof
index ad99af2..247d834 100644
--- a/doc/efun/sizeof
+++ b/doc/efun/sizeof
@@ -1,13 +1,14 @@
SYNOPSIS
int sizeof(mixed * val)
int sizeof(string val)
+ int sizeof(bytes val)
int sizeof(mapping val)
int sizeof(struct xxx val)
BESCHREIBUNG
Liefert die Anzahl Elemente in einem Array <val>, die Anzahl
- Zeichen in einem String <val> oder die Anzal Keys in einem Mapping
- <val>.
+ Zeichen in einem String <val>, die Anzahl an Bytes in der
+ Bytefolge <val> oder die Anzal Keys in einem Mapping <val>.
Als Spezialfall kann <val> auch 0 sein. In diesem Fall liefert die
Funktion 0 zurueck.
diff --git a/doc/efun/sl_exec b/doc/efun/sl_exec
index e8c4a8f..406c741 100644
--- a/doc/efun/sl_exec
+++ b/doc/efun/sl_exec
@@ -1,6 +1,6 @@
OPTIONAL
SYNOPSIS
- mixed* sl_exec(string statement, ...)
+ mixed * sl_exec(string statement, ...)
BESCHREIBUNG
Fuehrt den SQL-Befehl <statement> in der aktuell geoeffneten
@@ -14,6 +14,10 @@
Array aus den einzelnen Zeilen (welche wieder Arrays der einzelnen
Felder sind) zurueck.
+ Pragma-Befehle erzeugen eine privilege_violation ("sqlite_pragma",
+ ob, name, wert). Wird das Privileg verneint, wird ein Fehler
+ ausgeloest.
+
Diese Funktion ist nur verfuegbar, wenn der Driver mit SQLite-
Unterstuetzung compiliert wurde. In diesem Fall ist das Makro
__SQLITE__ definiert.
diff --git a/doc/efun/snoop b/doc/efun/snoop
index 484b202..bda2cd5 100644
--- a/doc/efun/snoop
+++ b/doc/efun/snoop
@@ -1,7 +1,7 @@
GESCHUETZT
SYNOPSIS
- int snoop(object snooper);
- int snoop(object snooper, object snoopee);
+ int snoop(object snooper)
+ int snoop(object snooper, object snoopee)
BESCHREIBUNG
Beginnt die Beobachtung des Objekts <snoopee> durch <snooper>. Wenn
@@ -15,7 +15,7 @@
Es wird auch ein Fehler verursacht, wenn eine Beobachtung zu einer
Rekursion fuehren wuerde.
-ANMERKUNG
+ANMERKUNGEN
Diese Funktion ist geschuetzt.
SIEHE AUCH
diff --git a/doc/efun/sprintf b/doc/efun/sprintf
index 3cb6970..41a7c0e 100644
--- a/doc/efun/sprintf
+++ b/doc/efun/sprintf
@@ -1,147 +1,147 @@
-SYNOPSIS
- string sprintf(string fmt, ...)
-
-BESCHREIBUNG
- Mit dieser Funktion kann man auf einfache Weise aus dem Inhalt
- von Variablen einen String bauen; und dies effektiver als
- mit der ueblichen "Du hast "+anzahl+" Punkt(e)"-Methode.
-
- Die Funktion bekommt als erstes Argument einen Formatstring fmt,
- der Informationen darueber enthaelt, wie die weiteren beliebigen
- Argumente in den Ergebnisstring eingebaut werden sollen.
- Die meisten Zeichen gelangen vom Formatstring unveraendert in
- den Ausgabestring. Die Regeln zum Einbau eines Arguments werden
- immer mit '%' eingeleitet. Moechte man ein '%' in die Ausgabe
- bringen, so muss man im Formatstring "%%" verwenden.
-
- Ein einfaches Beispiel ist erg=sprintf("%s %d", str, i);
- '%' leitet einen Argumentformatstring (AFS) ein. Das 's' schliesst
- ihn ab und besagt, dass ein String eingebaut werden soll. Das
- folgende Leerzeichen wird unveraendert uebernommen. '%' leitet
- wieder einen neuen Formatstring ein, wobei 'd' eine Ganzzahl
- bezeichnet (eine Variable von Typ int).
- Dies ist ein allerdings nur ein sehr einfaches Beispiel.
-
- Jeder Argumentformatstring kennzeichnet also, auf welche Art
- ein Argument in das Ergebnis eingebaut werden soll. Der erste
- AFS ist fuer das zweite Argument der Funktion, der zweite AFS
- fuer das dritte Argument u.s.w. (das erste Argument der Funktion
- ist ja der Formatstring selbst).
-
- Jeder AFS beginnt mit einem '%' und endet mit einem der
- folgenden Zeichen (Argumenttyp-Kennzeichner):
- Zeichen Argumenttyp Bemerkung
- 's' string
- 'c' integer als ASCII-Zeichen
- 'd' 'i' integer Dezimalschreibweise
- 'o' integer Oktalschreibweise
- 'b' 'B' integer Binaerschreibweise
- 'x' 'X' integer Hexadezimalschreibweise
- 'e' 'E' float Exponentialschreibweise
- 'f' 'F' float Gleitkommadarstellung
- 'g' 'G' float Gleitkommadarstellung
- 'O' mixed Gibt fuer Debugging alles irgendwie
- lesbar aus, auch Arrays und Mappings
- 'Q' mixed Wie 'O', gibt jedoch Sonderzeichen in
- Strings in der LPC-Notation aus
-
- Zwischen dem '%' und dem Argumenttyp-Kennzeichner kann man
- noch mehrere Modifikatoren setzen, die das Verhalten
- beeinflussen.
- Hier eine Uebersicht. n steht hier fuer eine Ganzzahl, also
- zum Beispiel "12".
- Modifikator Bedeutung
- n Minimale Stringlaenge, die fuer dieses Argument
- verwendet werden soll. Fehlende Zeichen werden mit
- einem Fuellzeichen aufgefuellt. Beginnt n mit einer
- '0' (etwa "08") so ist das Fuellzeichen '0' sonst
- ist es per Default ' '. (sogenannte 'Feldbreite')
- .n Bei Ganzzahlen die Maxanzahl der Stellen, bei Gleit-
- kommazahlen die Maximalzahl der Nachkommastellen.
- Bei (einfachen) Strings die Maximallaenge.
- :n Ist dasselbe wie n.n - setzt also beide Werte auf
- dieselbe Zahl.
- 'X' Als Fuellzeichen wird X genutzt. X koennen dabei
- auch mehrere Zeichen sein, etwa fuehrt '-=' zu
- Fuellungen der Art "-=-=-=-=". Um mit Hochkommas
- zu fuellen ist '\\'' anzugeben. Rueckwaerts-
- schraegstrich entsprechend mit '\\\\'.
- <Space> Vor positive Zahlen wird ein Leerzeichen gefuegt.
- + Vor positive Zahlen wird ein '+' gefuegt.
- - Der Wert wird linksbuendig in das fuer dieses Argument
- vorgesehene Feld eingefuegt (Standard ist rechts-
- buendig). Bei Strings wird meistens diese Ausrichtung
- die sinnvollste sein.
- | Der Wert wird zentriert in das Feld eingefuegt.
- (Siehe Modifikator n, Feldbreite)
- $ Blocksatz. Benoetigt eine Feldbreite, funktioniert nur
- bei Strings (auch im Spaltenmodus).
- = Spaltenmodus (siehe unten).
- # Fuer Strings: Tabellenmodus (siehe unten).
- Fuer '%O'/'%Q': kompakte Ausgabe.
- @ Arraymodus (siehe unten).
- * Ein Stern kann immer dort eingesetzt werden, wo
- hier weiter oben ein n fuer eine Ganzzahl steht.
- Der Wert der Zahl muss dann als weiterer Parameter
- an die Funktion uebergeben werden.
-
-BEISPIELE
- Mit den bis jetzt erwaehnten Moeglichkeiten kann man zB machen:
-
- sprintf("%d (dec) == %o (octal) == %x (hex)", 20, 20, 20);
- => "20 (dec) == 24 (octal) == 14 (hex)"
-
- sprintf("Du drehst den Knopf um %.3f Umdrehungen", 12.3456);
- => "Du drehst den Knopf um 12.345 Umdrehungen"
-
- sprintf("Du liest %|'*':9s", "Fiona");
- => "Du liest **Fiona**"
-
- sprintf("Auf dem Zettelstueck steht: %-.*s...", 7, "Hallo Du da");
- => "Auf dem Zettelstueck steht: Hallo D...
-
-ERWEITERTE MODI
- Mit dem Modifikatoren = # und @ stehen maechtige Werkzeuge zur
- Verfuegung. Mit ein wenig Ueberlegung kann man sich oft viele
- Zeilen Code ersparen.
- Arraymodus (@):
- sprintf("%@s", arr_of_string);
- Der Argumentformatstring (allerdings ohne das @) wird sooft
- hintereinandergereiht, wieviele Elemente das Array hat.
- Jeder AFS wird dann fuer ein Element des Arrays benutzt.
- sprintf("%@s", ({"aaa","bbb"})) ist somit dasselbe wie
- sprintf("%s%s", "aaa", "bbb"). Allerdings passt es sich
- immer an die Elementzahl der uebergebenden Arrays an.
- Dies ist nuetzlich um Ergebnisse von map() oder aehnlich
- auszugeben.
- sprintf("%@s", map_objects(all_inventory(), "short"));
- Der Argumenttyp-Kennzeichner muss hierbei immer dem Typen
- eines Elementes des Arrays entsprechen.
- Spaltenmodus (=):
- Diese Funktion bricht Text um. Die Feldbreite muss angegeben
- werden. Wird neben der Feldbreite auch eine maximale String-
- laenge angegeben, so wird die letztere fuer die Breite des
- Umbrechens verwendet, die Feldbreite wird mit Fuellzeichen
- aufgefuellt.
- sprintf("%=-20s", str); bricht den String str 'wordwrap'end
- auf 20 Zeichen Laenge um. sprintf("%=-*s", len, str);
- ist schon eine einfache break_string() Variante.
- Tabellenmodus (#):
- Diese Funktion gibt Strings tabellenartig aus. Die Teilstrings
- muessen mit \n getrennt als ein String als Argument uebergeben
- werden. Die Feldbreite muss angegeben werden und bezeichnet
- die (maximale) Gesamtbreite der Tabelle.
- Die Anzahl der Spalten der Tabelle wird moeglichst optimal
- bestimmt, und ist fuer alle Spalten gleich. Wird ein
- Wert als 'Praezision' angegeben, so ist dies die Anzahl von
- Spalten, die verwendet werden soll.
- sprintf("%#30.4s", str) erzeugt eine Tabelle, die maximal
- 30 Zeichen breit ist und 4 Spalten enthaelt.
- sprintf("%#30s", str) legt die Spaltenzahl dynamisch anhand
- der Einzelstringlaengen fest, so dass der laengste String
- noch genau in die Tabelle passt.
- Wenn string* worte die in die Tabelle einzubettenden Worte
- enthaelt, so muss str=implode(worte,"\n") sein.
-
-SIEHE AUCH:
- printf(E)
+SYNOPSIS
+ string sprintf(string fmt, ...)
+
+BESCHREIBUNG
+ Mit dieser Funktion kann man auf einfache Weise aus dem Inhalt
+ von Variablen einen String bauen; und dies effektiver als
+ mit der ueblichen "Du hast "+anzahl+" Punkt(e)"-Methode.
+
+ Die Funktion bekommt als erstes Argument einen Formatstring fmt,
+ der Informationen darueber enthaelt, wie die weiteren beliebigen
+ Argumente in den Ergebnisstring eingebaut werden sollen.
+ Die meisten Zeichen gelangen vom Formatstring unveraendert in
+ den Ausgabestring. Die Regeln zum Einbau eines Arguments werden
+ immer mit '%' eingeleitet. Moechte man ein '%' in die Ausgabe
+ bringen, so muss man im Formatstring "%%" verwenden.
+
+ Ein einfaches Beispiel ist erg=sprintf("%s %d", str, i);
+ '%' leitet einen Argumentformatstring (AFS) ein. Das 's' schliesst
+ ihn ab und besagt, dass ein String eingebaut werden soll. Das
+ folgende Leerzeichen wird unveraendert uebernommen. '%' leitet
+ wieder einen neuen Formatstring ein, wobei 'd' eine Ganzzahl
+ bezeichnet (eine Variable von Typ int).
+ Dies ist ein allerdings nur ein sehr einfaches Beispiel.
+
+ Jeder Argumentformatstring kennzeichnet also, auf welche Art
+ ein Argument in das Ergebnis eingebaut werden soll. Der erste
+ AFS ist fuer das zweite Argument der Funktion, der zweite AFS
+ fuer das dritte Argument u.s.w. (das erste Argument der Funktion
+ ist ja der Formatstring selbst).
+
+ Jeder AFS beginnt mit einem '%' und endet mit einem der
+ folgenden Zeichen (Argumenttyp-Kennzeichner):
+ Zeichen Argumenttyp Bemerkung
+ 's' string
+ 'c' integer als ASCII-Zeichen
+ 'd' 'i' integer Dezimalschreibweise
+ 'o' integer Oktalschreibweise
+ 'b' 'B' integer Binaerschreibweise
+ 'x' 'X' integer Hexadezimalschreibweise
+ 'e' 'E' float Exponentialschreibweise
+ 'f' 'F' float Gleitkommadarstellung
+ 'g' 'G' float Gleitkommadarstellung
+ 'O' mixed Gibt fuer Debugging alles irgendwie
+ lesbar aus, auch Arrays und Mappings
+ 'Q' mixed Wie 'O', gibt jedoch Sonderzeichen in
+ Strings in der LPC-Notation aus
+
+ Zwischen dem '%' und dem Argumenttyp-Kennzeichner kann man
+ noch mehrere Modifikatoren setzen, die das Verhalten
+ beeinflussen.
+ Hier eine Uebersicht. n steht hier fuer eine Ganzzahl, also
+ zum Beispiel "12".
+ Modifikator Bedeutung
+ n Minimale Stringlaenge, die fuer dieses Argument
+ verwendet werden soll. Fehlende Zeichen werden mit
+ einem Fuellzeichen aufgefuellt. Beginnt n mit einer
+ '0' (etwa "08") so ist das Fuellzeichen '0' sonst
+ ist es per Default ' '. (sogenannte 'Feldbreite')
+ .n Bei Ganzzahlen die Maxanzahl der Stellen, bei Gleit-
+ kommazahlen die Maximalzahl der Nachkommastellen.
+ Bei (einfachen) Strings die Maximallaenge.
+ :n Ist dasselbe wie n.n - setzt also beide Werte auf
+ dieselbe Zahl.
+ 'X' Als Fuellzeichen wird X genutzt. X koennen dabei
+ auch mehrere Zeichen sein, etwa fuehrt '-=' zu
+ Fuellungen der Art "-=-=-=-=". Um mit Hochkommas
+ zu fuellen ist '\\'' anzugeben. Rueckwaerts-
+ schraegstrich entsprechend mit '\\\\'.
+ <Space> Vor positive Zahlen wird ein Leerzeichen gefuegt.
+ + Vor positive Zahlen wird ein '+' gefuegt.
+ - Der Wert wird linksbuendig in das fuer dieses Argument
+ vorgesehene Feld eingefuegt (Standard ist rechts-
+ buendig). Bei Strings wird meistens diese Ausrichtung
+ die sinnvollste sein.
+ | Der Wert wird zentriert in das Feld eingefuegt.
+ (Siehe Modifikator n, Feldbreite)
+ $ Blocksatz. Benoetigt eine Feldbreite, funktioniert nur
+ bei Strings (auch im Spaltenmodus).
+ = Spaltenmodus (siehe unten).
+ # Fuer Strings: Tabellenmodus (siehe unten).
+ Fuer '%O'/'%Q': kompakte Ausgabe.
+ @ Arraymodus (siehe unten).
+ * Ein Stern kann immer dort eingesetzt werden, wo
+ hier weiter oben ein n fuer eine Ganzzahl steht.
+ Der Wert der Zahl muss dann als weiterer Parameter
+ an die Funktion uebergeben werden.
+
+BEISPIELE
+ Mit den bis jetzt erwaehnten Moeglichkeiten kann man zB machen:
+
+ sprintf("%d (dec) == %o (octal) == %x (hex)", 20, 20, 20);
+ => "20 (dec) == 24 (octal) == 14 (hex)"
+
+ sprintf("Du drehst den Knopf um %.3f Umdrehungen", 12.3456);
+ => "Du drehst den Knopf um 12.345 Umdrehungen"
+
+ sprintf("Du liest %|'*':9s", "Fiona");
+ => "Du liest **Fiona**"
+
+ sprintf("Auf dem Zettelstueck steht: %-.*s...", 7, "Hallo Du da");
+ => "Auf dem Zettelstueck steht: Hallo D...
+
+ERWEITERTE MODI
+ Mit dem Modifikatoren = # und @ stehen maechtige Werkzeuge zur
+ Verfuegung. Mit ein wenig Ueberlegung kann man sich oft viele
+ Zeilen Code ersparen.
+ Arraymodus (@):
+ sprintf("%@s", arr_of_string);
+ Der Argumentformatstring (allerdings ohne das @) wird sooft
+ hintereinandergereiht, wieviele Elemente das Array hat.
+ Jeder AFS wird dann fuer ein Element des Arrays benutzt.
+ sprintf("%@s", ({"aaa","bbb"})) ist somit dasselbe wie
+ sprintf("%s%s", "aaa", "bbb"). Allerdings passt es sich
+ immer an die Elementzahl der uebergebenden Arrays an.
+ Dies ist nuetzlich um Ergebnisse von map() oder aehnlich
+ auszugeben.
+ sprintf("%@s", map_objects(all_inventory(), "short"));
+ Der Argumenttyp-Kennzeichner muss hierbei immer dem Typen
+ eines Elementes des Arrays entsprechen.
+ Spaltenmodus (=):
+ Diese Funktion bricht Text um. Die Feldbreite muss angegeben
+ werden. Wird neben der Feldbreite auch eine maximale String-
+ laenge angegeben, so wird die letztere fuer die Breite des
+ Umbrechens verwendet, die Feldbreite wird mit Fuellzeichen
+ aufgefuellt.
+ sprintf("%=-20s", str); bricht den String str 'wordwrap'end
+ auf 20 Zeichen Laenge um. sprintf("%=-*s", len, str);
+ ist schon eine einfache break_string() Variante.
+ Tabellenmodus (#):
+ Diese Funktion gibt Strings tabellenartig aus. Die Teilstrings
+ muessen mit \n getrennt als ein String als Argument uebergeben
+ werden. Die Feldbreite muss angegeben werden und bezeichnet
+ die (maximale) Gesamtbreite der Tabelle.
+ Die Anzahl der Spalten der Tabelle wird moeglichst optimal
+ bestimmt, und ist fuer alle Spalten gleich. Wird ein
+ Wert als 'Praezision' angegeben, so ist dies die Anzahl von
+ Spalten, die verwendet werden soll.
+ sprintf("%#30.4s", str) erzeugt eine Tabelle, die maximal
+ 30 Zeichen breit ist und 4 Spalten enthaelt.
+ sprintf("%#30s", str) legt die Spaltenzahl dynamisch anhand
+ der Einzelstringlaengen fest, so dass der laengste String
+ noch genau in die Tabelle passt.
+ Wenn string* worte die in die Tabelle einzubettenden Worte
+ enthaelt, so muss str=implode(worte,"\n") sein.
+
+SIEHE AUCH
+ printf(E)
diff --git a/doc/efun/sqrt b/doc/efun/sqrt
index 44c4805..d1bccdd 100644
--- a/doc/efun/sqrt
+++ b/doc/efun/sqrt
@@ -1,9 +1,9 @@
SYNOPSIS
- float sqrt(int value);
- float sqrt(floag value);
+ float sqrt(int value)
+ float sqrt(floag value)
BESCHREIBUNG
Liefert die Quadratwurzel von <value>.
-SIEHE AUCH
- log(E), pow(E)
\ No newline at end of file
+GESCHICHTE
+ LDMud 3.2.9 fuehrte integer als moegliche Argumente ein.
diff --git a/doc/efun/sscanf b/doc/efun/sscanf
index a616bf2..a927b70 100644
--- a/doc/efun/sscanf
+++ b/doc/efun/sscanf
@@ -1,115 +1,78 @@
-FUNKTION:
- int sscanf(string str,string fmt,mixed var1,mixed var2,...)
+SYNOPSIS
+ 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
+BESCHREIBUNG
+ Wertet einen String <str> unter Beruecksichtigung des Formats
+ <fmt>. <fmt> kann Strings beinhalten, die durch %d und %s getrennt
+ werden. Jedes %d und %s entspricht einer der Variablen <var1>,
+ <var2> etc.
-RUeCKGABEWERT:
- Anzahl der gefundenen Argumente.
+ Die Operatoren im Format-String <fmt> haben eines der folgenden
+ Formate:
-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>
+ %[+][!|~][<size>[.<minmatch>]]<type>
<type> kann folgendes sein:
- d: steht fuer eine Zahl
- D: steht fuer eine Zahl
+ d: meldet eine Zahl
+ D: meldet eine Zahl
U:
- s: steht fuer eine Zeichenkette
- %: steht fuer das %-Zeichen
- t: steht fuer Whitespaces (also Leerschlaege und Tabulatoren),
+ s: meldet eine Zeichenkette
+ %: meldet das %-Zeichen
+ t: meldet 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.
+ <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, muessen die Zeichen nach dem Feld ebenfalls
+ matchen. Ist dies nicht der Fall, wird das Feld als Misserfolg
+ betrachted (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.
+ 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.
+ Wenn %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.
- 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.
+ 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.
+ Zurueck gegeben wird die Anzahl Treffer.
-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");
+ Die Funktion sscanf() ist insofern ein Spezialfall, als dass
+ Argumente automatisch nach Referenz uebergeben werden.
- sscanf("ab", "%s%s", who, what)
- ==> liefert 2, who = "", what = "ab"
+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+" um auf dich "
+ "aufmerksam zu machen.\n");
- sscanf("ab", "%s %s", who, what)
- ==> liefert 0, who = 0, what = 0
+ sscanf("ab", "%s%s", who, what)
+ ==> liefert 2, who = "", what = "ab"
- sscanf("ab ", "%s %s", who, what)
- ==> liefert 2, who = "ab", what = ""
+ 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
+GESCHICHTE
+ LDMud 3.3.713/3.2.13 fuehrte den '+'-Modifizierer ein.
- 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:
+SIEHE AUCH
explode(E), regexp(E)
-
-8.Aug 2007 Gloinson
diff --git a/doc/efun/strftime b/doc/efun/strftime
index c167afb..d437bcd 100644
--- a/doc/efun/strftime
+++ b/doc/efun/strftime
@@ -24,10 +24,10 @@
0: Ausgabe im klassischen "C" locale (english)
1: Ausgabe in Landessprache des Mudrechners.
-BEMERKUNGEN:
+ANMERKUNGEN
Der zurueckgebene Ergebnisstring ist max. 511 Zeichen lang.
-PLATZHALTER:
+PLATZHALTER
Diese Funktion versteht alle Platzhalter, die die Funktion strftime() aus
der C-Standardbibliothek versteht. Momentan sind dies:
%a Der abgekuerzte Wochentag abhaengig von der momentanen Locale.
@@ -101,12 +101,18 @@
%H:%M:%S %z').
%Z Die Zeitzone oder der Name oder die Abkuerzung.
%+ Datum und Zeit im Format von date(1).
- %% Das Zeichen '%'.
-
-BEISPIEL
+ %% Das Zeichen '%'.
+
+FEHLER
+ Es gibt keinen Platzhalter fuer die Mondphase.
+
+BEISPIELE
write(strftime("Heute ist %A, der %d. %B %Y.\n"))
ergibt z.B.
"Heute ist Montag, der 24. September 2007.\n"
+GESCHICHTE
+ Eingefuehrt in LDMud 3.3.718.
+
SIEHE AUCH
ctime(E), gmtime(E), localtime(E), mktime(E), time(E), utime(E)
diff --git a/doc/efun/stringp b/doc/efun/stringp
index 97d82b0..d67c090 100644
--- a/doc/efun/stringp
+++ b/doc/efun/stringp
@@ -6,5 +6,5 @@
ansonsten 0.
SIEHE AUCH
- closurep(E), floatp(E), mappingp(E), objectp(E), intp(E),
- referencep(E), pointerp(E), symbolp(E), clonep(E)
+ bytesp(E), closurep(E), floatp(E), mappingp(E), objectp(E),
+ intp(E), referencep(E), pointerp(E), symbolp(E), clonep(E)
diff --git a/doc/efun/strrstr b/doc/efun/strrstr
index bc039b6..8e39b79 100644
--- a/doc/efun/strrstr
+++ b/doc/efun/strrstr
@@ -1,6 +1,8 @@
SYNOPSIS
- int strrstr(string str, string muster);
- int strrstr(string str, string muster, int pos);
+ int strrstr(string str, string muster)
+ int strrstr(string str, string muster, int pos)
+ int strrstr(bytes str, bytes muster)
+ int strrstr(bytes str, bytes muster, int pos)
BESCHREIBUNG:
Liefert den Index des ersten Auftretens von <muster> im String <str>,
@@ -18,8 +20,8 @@
Strings aus gezaehlt. Dabei wird die Suche aber dennoch rueckwaerts
im String <str> durchgefuehrt.
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.10
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.10.
SIEHE AUCH
strstr(E), strlen(E), sscanf(E), sprintf(E), explode(E)
diff --git a/doc/efun/strstr b/doc/efun/strstr
index ea5cb83..2d93006 100644
--- a/doc/efun/strstr
+++ b/doc/efun/strstr
@@ -1,6 +1,8 @@
SYNOPSIS
- int strstr(string str, string muster);
- int strstr(string str, string muster, int pos);
+ int strstr(string str, string muster)
+ int strstr(string str, string muster, int pos)
+ int strstr(bytes str, bytes muster)
+ int strstr(bytes str, bytes muster, int pos)
BESCHREIBUNG
Liefert den Index des ersten Auftretens von <muster> in <str>,
@@ -8,7 +10,7 @@
wird. Wird <pos> nicht angegeben, wird als Standardwert 0 gesetzt,
also vom Beginn von <str> her gesucht.
- Wenn <muster> nicht gefunden wird, wird -1 zurueck geliefert.
+ Wenn <muster> nicht gefunden wird, wird -1 zurueckgeliefert.
Wenn <pos> negativ ist, bezeichnet <pos> die Startposition der Suche
relativ zum Ende von <str>, es wird aber weiterhin vorwaerts gesucht.
diff --git a/doc/efun/swap b/doc/efun/swap
index fd242e4..4ab426d 100644
--- a/doc/efun/swap
+++ b/doc/efun/swap
@@ -1,6 +1,6 @@
GESCHUETZT
SYNOPSIS
- void swap(object obj);
+ void swap(object obj)
BESCHREIBUNG
Lagert ein Objekt aus. Diese Efun ist nur fuer systeminternes
diff --git a/doc/efun/symbol_variable b/doc/efun/symbol_variable
index b3a66d4..9a6089a 100644
--- a/doc/efun/symbol_variable
+++ b/doc/efun/symbol_variable
@@ -1,7 +1,7 @@
SYNOPSIS
- closure symbol_variable(string arg);
- closure symbol_variable(symbol arg);
- closure symbol_variable(int arg);
+ closure symbol_variable(string arg)
+ closure symbol_variable(symbol arg)
+ closure symbol_variable(int arg)
BESCHREIBUNG
Erzeugt eine Identifier (Lfun) Closure aus der globalen Variablen
@@ -16,14 +16,14 @@
bezieht, die im geerbten Objekt "private" deklariert ist (d.h.
versteckt), fuehrt dies zu einer Schutzverletzung.
-AENDERUNGEN
- Eingefuehrt in 3.2.1@8
-
BEISPIELE
int base;
int var;
symbol_variable("var"); ergibt: #'<this_object>->var
symbol_variable(0); ergibt: #'<this_object>->base
+GESCHICHTE
+ Eingefuehrt in 3.2.1@8.
+
SIEHE AUCH
lambda(E), quote(E), symbol_function(E)
diff --git a/doc/efun/symbolp b/doc/efun/symbolp
index 92c64b7..d3eec65 100644
--- a/doc/efun/symbolp
+++ b/doc/efun/symbolp
@@ -4,10 +4,10 @@
BESCHREIBUNG
Liefert 1, wenn das Argument ein Symbol ist, ansonsten 0.
-BEISPIEL
+BEISPIELE
symbolp('foo) liefert 1.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in 3.2@70.
SIEHE AUCH
diff --git a/doc/efun/tan b/doc/efun/tan
index f99a085..695522a 100644
--- a/doc/efun/tan
+++ b/doc/efun/tan
@@ -4,7 +4,7 @@
BESCHREIBUNG
Liefert den Tangens des Argumentes.
-AENDERUNGEN
+GESCHICHTE
LDMud 3.2.9: Ganzzahlen (Integers) als Argument hinzugefuegt.
SIEHE AUCH
diff --git a/doc/efun/terminal_colour b/doc/efun/terminal_colour
index 6cd1bce..4d51a33 100644
--- a/doc/efun/terminal_colour
+++ b/doc/efun/terminal_colour
@@ -1,7 +1,7 @@
SYNOPSIS
varargs string terminal_colour(string str,
null | mapping | closure map,
- int wrap, int indent);
+ int wrap, int indent)
BESCHREIBUNG
Ist <map> ein Wert ungleich 0, ersetzt diese Efun alle Farb-
Definitionen der Form "%^KEY%^" (siehe unten fuer Details) im
@@ -63,8 +63,7 @@
und versucht dann jeden Teilstring als Farbschluessel zu behandeln.
Dieses Verhalten laesst sich auch unter LPC erreichen:
- string mudos_terminal_colour(string str, mapping ext, int w, int i)
- {
+ string mudos_terminal_colour(string str, mapping ext, int w, int i) {
return terminal_colour("%^"+implode(explode(str, "%^")-({""})
,"%^%^")
, ext, w, i);
@@ -113,7 +112,7 @@
"dies ist die erste Zeile\n und dies ist die zweite Zeile"
-AENDERUNGEN
+GESCHICHTE
Die Idee fuer diese Efun und die erste Implementierung stammen
aus MudOS; die Strategie fuer das Erkennen von Schluesseln
(eingeschlossen die pure Zeilenumbruch Funktion) wurde in
diff --git a/doc/efun/test_bit b/doc/efun/test_bit
index af82c95..d493357 100644
--- a/doc/efun/test_bit
+++ b/doc/efun/test_bit
@@ -1,5 +1,5 @@
SYNOPSIS
- int test_bit(string str, int n);
+ int test_bit(string str, int n)
BESCHREIBUNG
Gibt 0 oder 1 des <n>-ten Bits im String <str> zurueck.
diff --git a/doc/efun/this_interactive b/doc/efun/this_interactive
index 92938bb..2b872df 100644
--- a/doc/efun/this_interactive
+++ b/doc/efun/this_interactive
@@ -1,9 +1,9 @@
SYNOPSIS
- object this_interactive();
+ object this_interactive()
BESCHREIBUNG
Die Funktion gibt das momentane interaktive Objekt zurueck, falls
- vorhanden, also dasjenige welches "die Entertaste gedrueckt hat".
+ vorhanden, also dasjenige, welches "die Entertaste gedrueckt hat".
SIEHE AUCH
this_player(E), previous_object(E), interactive(E), living(E)
diff --git a/doc/efun/this_object b/doc/efun/this_object
index 5b60276..fa51f1c 100644
--- a/doc/efun/this_object
+++ b/doc/efun/this_object
@@ -1,10 +1,10 @@
-SYNOPSIS:
- object this_object(void)
+SYNOPSIS
+ object this_object()
-DESCRIPTION:
- Return the object pointer for this object. This is not to be
- confused with the internal name of an object, which is used by
- the id() function.
+BESCHREIBUNG
+ Liefert den Objektpointer auf dieses Objekt. Der Pointer darf nicht
+ mit dem internen Namen des Objekts verwechselt werden, welcher von
+ id() verwendet wird.
-SEE ALSO:
+SIEHE AUCH
this_player(E), previous_object(E), object_name(E), find_object(E)
diff --git a/doc/efun/this_player b/doc/efun/this_player
index 5ab6420..4017a64 100644
--- a/doc/efun/this_player
+++ b/doc/efun/this_player
@@ -1,16 +1,15 @@
SYNOPSIS
- object this_player();
+ object this_player()
BESCHREIBUNG
Liefert den momentanen Kommandogeber. Das kann ein interaktiver
- Benutzer oder ein lebendiges Objekt sein, zum Beispiel ein NPC.
+ Bentzer oder ein lebendiges Objekt sein, zum Beispiel ein NPC.
- Wenn die Funktion von innerhalb des heart_beat() eines nicht
+ Wenn die Funktion innerhalb von heart_beat() eines nicht
lebendigen Objekts aufgerufen wird, wird 0 zurueck gegeben.
-BEISPIEL
- if(this_player() != this_interactive())
- {
+BEISPIELE
+ if (this_player() != this_interactive()) {
write("Hey, jemand zwingt uns, Kommandos auszufuehren!\n");
}
diff --git a/doc/efun/throw b/doc/efun/throw
index 2a21cde..d0b518e 100644
--- a/doc/efun/throw
+++ b/doc/efun/throw
@@ -1,14 +1,14 @@
SYNOPSIS
- void throw(mixed arg);
+ void throw(mixed arg)
BESCHREIBUNG
Bricht die Programmverarbeitung ab. Wenn die Verarbeitung mit catch()
gestartet wurde, gibt dieses catch() <arg> als Fehlermeldung aus.
- Der Aufruf von throw() ohne vorheriges catch() ist sinnlos und
+ Der Aufruf von throw() ohne vorheriges catch() macht keinen Sinn und
erzeugt einen "throw without catch" Fehler.
-BEISPIEL
+BEISPIELE
catch(throw("Verarbeitung abgebrochen!"));
Das macht nichts als "Verarbeitung abgebrochen!" auszugeben.
diff --git a/doc/efun/time b/doc/efun/time
index f7016a4..d9e9ed2 100644
--- a/doc/efun/time
+++ b/doc/efun/time
@@ -1,18 +1,18 @@
SYNOPSIS
- int time();
+ int time()
BESCHREIBUNG
Liefert die Anzahl Sekunden, die seit dem 01. Januar 1970,
00:00:00 GMT verstrichen sind.
- Die Zeitangabe basiert auf der Systemzeit des Hosts, der Driver
+ Die Zeitangabe basiert auf der Systemzeit des Hosts; der Driver
stellt jedoch sicher, dass das Resultat von time() monoton ansteigt
(also immer nur zu hoeheren Werten wechselt).
Das Resultat von time() veraendert sich nicht waehrend dem Abarbeiten
eines Kommandos.
-BEISPIEL
+BEISPIELE
Um das aktuelle Datum und die aktuelle Zeit anzuzeigen:
write(ctime(time())+"\n");
diff --git a/doc/efun/to_float b/doc/efun/to_float
index 7b989ce..2d6f8d6 100644
--- a/doc/efun/to_float
+++ b/doc/efun/to_float
@@ -1,7 +1,7 @@
SYNOPSIS
- float to_float(int arg);
- float to_float(string arg);
- float to_flaot(float arg);
+ float to_float(int arg)
+ float to_float(string arg)
+ float to_float(float arg)
(float)<value>
@@ -10,7 +10,7 @@
konvertiert bis zum ersten Zeichen, das nicht mehr zum Float
gehoert. Floats werden direkt zurueck gegeben.
-BUGS
+FEHLER
Die Cast-Schreibweise funktioniert nur, wenn der genaue Wert von
<value> zum Zeitpunkt der Kompilierung bekannt ist. Dies wird nicht
geaendert werden, da die Funktionsform verwendet werden kann.
diff --git a/doc/efun/to_int b/doc/efun/to_int
index 6c648e4..75c1992 100644
--- a/doc/efun/to_int
+++ b/doc/efun/to_int
@@ -1,8 +1,8 @@
SYNOPSIS
- int to_int(string arg);
- int to_int(float arg);
- int to_int(int arg);
- int to_int(closure arg);
+ int to_int(string arg)
+ int to_int(float arg)
+ int to_int(int arg)
+ int to_int(closure arg)
(int)<value>
@@ -19,13 +19,13 @@
Diese Funktion unterstuetzt die Basisprefixe '0x', '0o' und '0b'.
-BUGS
+FEHLER
Die Cast-Schreibweise funktioniert nur, wenn der genaue Wert von
<value> zum Zeitpunkt der Kompilierung bekannt ist. Dies wird
nicht geaendert werden, da die Funktionsform verwendet werden kann.
-AENDERUNGEN
- Eingefuehrt in 3.2.1@2
+GESCHICHTE
+ Eingefuehrt in 3.2.1@2.
LDMud 3.2.11 fuehrte die Basisprefixe ein.
SIEHE AUCH
diff --git a/doc/efun/to_object b/doc/efun/to_object
index bb577f0..1ca88da 100644
--- a/doc/efun/to_object
+++ b/doc/efun/to_object
@@ -1,15 +1,29 @@
SYNOPSIS
- object to_object(string arg)
- object to_object(closure arg)
- object to_object(object arg)
+ object to_object(string arg)
+ object to_object(closure arg)
+ object to_object(object arg)
-DESCRIPTION
- The argument is converted into an object, if possible.
- For strings, the object with a matching object_name() is
- returned, or 0 if there is none, as find_object() does.
- For (bound!) closures, the object holding the closure is
- returned.
- Objects and the number 0 return themselves.
+ (object)<value>
-SEE ALSO
- find_object(E), to_array(E), to_int(E), to_string(E)
+BESCHREIBUNG
+ Das Argument <arg> wird in ein Objekt umgewandelt, wenn dies
+ moeglich ist.
+
+ Fuer Strings wird das Objekt mit entsprechendem object_name(<arg>)
+ zurueck gelierfert, oder 0, wenn es kein entsprechendes Objekt gibt.
+ Dies entspricht find_object().
+
+ Fuer (gebundene!) Closures wird das Objekt zurueck gegeben, das die
+ Closure enthaelt. Fuer "Alien Lfun Closures" ist das das Objekt, das
+ die Closure erzeugt hat, nicht das Objekt, in dem die Lfun definiert
+ ist.
+
+ Objekte und die Zahl 0 werden unveraendert zurueck gegeben.
+
+FEHLER
+ Die Cast-Schreibweise funktioniert nur, wenn der genaue Wert von
+ <value> zum Zeitpunkt der Kompilierung bekannt ist. Dies wird nicht
+ geaendert werden, da die Funktionsform verwendet werden kann.
+
+SIEHE AUCH
+ find_object(E), to_array(E), to_int(E), to_string(E), get_type_info(E)
diff --git a/doc/efun/trace b/doc/efun/trace
index 36edc79..330fcf1 100644
--- a/doc/efun/trace
+++ b/doc/efun/trace
@@ -1,8 +1,8 @@
GESCHUETZT
SYNOPSIS
- #include <sys/trace.h>
+ #include <trace.h>
- int trace(int traceflags);
+ int trace(int traceflags)
BESCHREIBUNG
Setzt die Trace Flags und liefert die alten Trace Flags zurueck.
@@ -35,20 +35,20 @@
Die Master-Lfun valid_trace() wird mit ("trace", traceflags)
aufgerufen, um die Erlaubnis fuer die Nutzung von trace() zu erhalten.
-BEISPIEL
+BEISPIELE
object obj;
string prefix;
- obj=find_player("thomas");
- prefix=objec_name(obj);
- prefix=prefix[1..strlen(prefix)-1]; /* entfernt den Praefix "/" */
+ obj = find_player("thomas");
+ prefix = object_name(obj); /* z.B. /std/player#69 */
+ prefix = prefix[1..]; /* entfernt den fuehrenden "/" */
traceprefix(prefix);
/* Von hier an wird nur Code im Objekt std/player#69 getracet */
trace(TRACE_CALL|TRACE_CALL_OTHER|TRACE_RETURN|TRACE_ARGS);
...
trace(TRACE_NOTHING);
-AENDERUNGEN
- LDMud 3.2.9 uebergibt auch <traceflags> an valid_trace()
+GESCHICHTE
+ LDMud 3.2.9 uebergibt auch <traceflags> an valid_trace().
SIEHE AUCH
traceprefix(E)
diff --git a/doc/efun/traceprefix b/doc/efun/traceprefix
index 0f46f45..24802ef 100644
--- a/doc/efun/traceprefix
+++ b/doc/efun/traceprefix
@@ -1,25 +1,38 @@
-SYNOPSIS:
+GESCHUETZT
+SYNOPSIS
string traceprefix(string prefix)
string traceprefix(int dummy)
-DESCRIPTION:
- If called with a string, only objects matching this prefix will
- be traced. The string must not contain a leading "/" because
- the object names are stored internally without it. If called
- with a number, the traceprefix will be ignored and all objects
- will be traced. Returns the last traceprefix or 0 if there
- wasn't any.
+BESCHREIBUNG
+ Wenn die Funktion mit einem String als Argument aufgerufen wird,
+ werden nur Objekte getracet, deren Name mit diesem String
+ uebereinstimmt. Der String <prefix> darf am Anfang keinen "/"
+ enthalten, weil Objektnamen intern ohne diesen "/" am Anfang
+ gespeichert werden. Wird traceprefix() mit einer Zahl als Argument
+ aufgerufen, wird traceprefix ignoriert und alle Objekte werden
+ getracet.
-EXAMPLE:
+ Die Funktion liefert das alte Praefix zurueck oder 0, wenn keines
+ gefunden wurde.
+
+ Die Master-Lfun valid_trace() wird mit ("traceprefix", prefix)
+ aufgerufen, um die Erlaubnis fuer die Benutzung dieser Funktion zu
+ erhalten.
+
+BEISPIELE
object obj;
string prefix;
- obj = find_player("deepthought");
- prefix = object_name(obj);
- prefix = prefix[1..strlen(prefix)-1]; /* cut off the leading "/" */
+ obj=find_player("thomas");
+ prefix = object_name(obj); /* z.B. /std/player#69 */
+ prefix = prefix[1..]; /* entfernt den fuehrenden "/" */
traceprefix(prefix);
- trace(1|2|4|8);
+ /* Von hier an wird nur Code im Objekt std/player#69 getracet */
+ trace(TRACE_CALL|TRACE_CALL_OTHER|TRACE_RETURN|TRACE_ARGS);
...
- trace(0);
-
-SEE ALSO:
+ trace(TRACE_NOTHING);
+
+GESCHICHTE
+ Ab LDMud 3.2.9 wird das Argument <prefix> an valid_trace() uebergeben.
+
+SIEHE AUCH
trace(E)
diff --git a/doc/efun/transfer b/doc/efun/transfer
deleted file mode 100644
index b413f02..0000000
--- a/doc/efun/transfer
+++ /dev/null
@@ -1,25 +0,0 @@
-VERALTET
-SYNOPSIS
- int transfer(object item, object dest)
-
-BESCHREIBUNG
- Diese Funktion existiert lediglich aus Kompatibilitaetsgrunden, und
- dann auch nur, wennn der Driver mit USE_DEPRECATED kompiliert wird.
-
- Das Object <item> wird in Objekt <dest> bewegt. Verschiedene Tests
- werden durchgefuehrt, und das Resultat beschreibt den (Miss)Erfolg:
-
- 0: Erfolg.
- 1: Zu schwer fuer <dest>
- 2: Kann nicht fallen gelassen werden.
- 3: Kann nicht aus seinem Behaelter genommen werden.
- 4: <item> kann in keinen Behaelter gesteckt werden.
- 5: <dest> akzeptiert <item> nicht.
- 6: <item> kann nicht aufgenommen werden.
-
- Die Funktion ruft die lfuns add_weight(), drop(), get(),
- prevent_insert(), add_weight(), und can_put_and_get() nach Bedarf..
-
-SIEHE AUCH
- move_object(E), drop(A), get(A), prevent_insert(A),
- can_put_and_get(A), add_weight(A)
diff --git a/doc/efun/transpose_array b/doc/efun/transpose_array
index 68e2a78..58654c1 100644
--- a/doc/efun/transpose_array
+++ b/doc/efun/transpose_array
@@ -1,22 +1,23 @@
-SYNOPSIS:
- mixed *transpose_array (mixed *arr);
+SYNOPSIS
+ mixed * transpose_array(mixed *arr)
-DESCRIPTION:
- transpose_array ( ({ ({1,2,3}), ({a,b,c}) }) )
- == ({ ({1,a}), ({2,b)}, ({3,c}) })
+BESCHREIBUNG
+ Transponiert das Array <arr>.
- transpose_array() applied to an alist results in an array of
- ({ key, data }) pairs, useful if you want to use sort_array()
- or filter() on the alist.
+ transpose_array( ({ ({1,2,3}) , ({a,b,c}) }) )
+ ergibt: ({ ({1,a}), ({2,b}), ({3,c}) })
-EXAMPLE:
- sort_array(transpose_array( ({ m_indices(map), m_values(map) }) ),
- lambda( ({ 'a, 'b }),
- ({ #'<, ({ #'[, 'a, 0 }),
- ({ #'[, 'b, 0}) }) ) )
+ Wird transpose_array() auf eine Alist angewendet, ergibt das ein
+ Array von ({ key, data }) in Paaren. Das ist praktisch, wenn
+ sort_array() oder filter() auf die Alist angewendet werden soll.
- The given mapping 'map' is returned as an array of
- ({ key, data }) pairs, sorted by the keys.
+BEISPIELE
+ sort_array(transpose_array( ({m_indices(map), m_values(map) }) ),
+ lambda( ({'a, 'b}),
+ ({#'<, ({ #'[, 'a, 0}),
+ ({ #'[, 'b, 0}) }) ));
+ Dieses Gebilde liefert das Mapping 'map' als Array von ({key, data })
+ Paaren, sortiert nach den Keys.
-SEE ALSO:
- alists(LPC), sort_array(E)
+SIEHE AUCH
+ alists(LPC), sort_array(E)
diff --git a/doc/efun/trim b/doc/efun/trim
index 4525a82..d5c58fa 100644
--- a/doc/efun/trim
+++ b/doc/efun/trim
@@ -1,9 +1,9 @@
SYNOPSIS
- #include <sys/strings.h>
+ #include <strings.h>
- string trim(string str);
- string trim(string str, int where);
- string trim(string str, int where, string char);
+ string trim(string str)
+ string trim(string str, int where)
+ string trim(string str, int where, string char)
BESCHREIBUNG
Entfernt alle vorausgehenden und abschliessenden Zeichen <char> in
@@ -21,13 +21,13 @@
TRIM_BOTH (3 oder 0): entfernt sowohl vorausgehende als auch
abschliessende Zeichen <char>
-BEISPIEL
+BEISPIELE
trim(" 1234 "); ergibt: "1234"
trim(" 1234 ", TRIM_RIGHT); ergibt: " 1234"
trim(" 1234 ", TRIM_BOTH, " 1"); ergibt: "234"
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.7
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.7.
SIEHE AUCH
regreplace(E)
diff --git a/doc/efun/typeof b/doc/efun/typeof
index 151bb96..b4716b0 100644
--- a/doc/efun/typeof
+++ b/doc/efun/typeof
@@ -1,13 +1,15 @@
SYNOPSIS
- int typeof(mixed arg);
+ #include <lpctypes.h>
+
+ int typeof(mixed arg)
BESCHREIBUNG
Gibt einen Code fuer den Typ des Arguments <arg>. Die Typen sind
- definiert in <sys/lpctypes.h>
+ definiert in <lpctypes.h>.
-AENDERUNGEN
- Eingefuehrt in 3.2@63
+GESCHICHTE
+ Eingefuehrt in 3.2@63.
SIEHE AUCH
get_type_info(E), intp(E), objectp(E), floatp(E), pointerp(E),
- closurep(E), symbolp(E), stringp(E), mappingp(E)
+ closurep(E), symbolp(E), stringp(E), bytesp(E), mappingp(E)
diff --git a/doc/efun/unbound_lambda b/doc/efun/unbound_lambda
index 804b1b5..79926e1 100644
--- a/doc/efun/unbound_lambda
+++ b/doc/efun/unbound_lambda
@@ -1,5 +1,5 @@
SYNOPSIS
- closure unbound_lambda(mixed *arg, mixed code);
+ closure unbound_lambda(mixed *arg, mixed code)
BESCHREIBUNG
Erzeugt eine Lambda-Closure, die nicht an ein Objekt gebunden ist,
@@ -23,5 +23,8 @@
funcall() oder apply() ausgewertet wird. Das zweite Argument <code>
enthaelt den Code der Closure.
+GESCHICHTE
+ Eingefuehrt in 3.2@82.
+
SIEHE AUCH
closures(LPC), lambda(E), apply(E), funcall(E), bind_lambda(E)
diff --git a/doc/efun/unique_array b/doc/efun/unique_array
index 390c56e..d77f2fc 100644
--- a/doc/efun/unique_array
+++ b/doc/efun/unique_array
@@ -30,18 +30,15 @@
({same2:1, same2:2, ... same2:n}),
({samem:1, samem:2, ... samem:n}) })
-BEISPIEL
+BEISPIELE
Um ein Array von Arrays zu erhalten, das alle Benutzer, nach Level
gruppiert, enthaelt:
mixed *arr;
- arr=unique_array(users(), "_query_level", -1);
+ arr = unique_array(users(), "_query_level", -1);
Goetter haben einen Level von -1. Sie werden nicht in arr aufgenommen,
weil <skip> == -1.
SIEHE AUCH
- Arrays: filter(E), map(E)
- Objektarrays: filter_objects(E), map_objects(E)
- Mappings: filter(E), map(E), filter_indices(E), map_indices(E)
-
+ filter(E), map(E)
diff --git a/doc/efun/unmkmapping b/doc/efun/unmkmapping
index 3beeccb..6eedb60 100644
--- a/doc/efun/unmkmapping
+++ b/doc/efun/unmkmapping
@@ -1,5 +1,5 @@
SYNOPSIS
- *mixed unmkmapping(mapping map);
+ mixed * unmkmapping(mapping map)
BESCHREIBUNG
Wandelt das Mapping <map> in ein Array von Arrays aus, das alle Keys
@@ -15,11 +15,11 @@
apply(#'mkmapping, unmkmapping(m)) == m
-BEISPIEL
+BEISPIELE
mapping m = ([ 1:10;20, 2:11;21 ]);
unmkmapping(m) ergibt: ({ ({1, 2}) , ({10, 11}) , ({20, 21}) })
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.6.
SIEHE AUCH
diff --git a/doc/efun/unquote b/doc/efun/unquote
index 8000060..9e8fad0 100644
--- a/doc/efun/unquote
+++ b/doc/efun/unquote
@@ -1,16 +1,16 @@
SYNOPSIS
- quoted_array unquote(quoted_array arr);
- string|symbol unquote(symbol sym);
+ quoted_array unquote(quoted_array arr)
+ string|symbol unquote(symbol sym)
BESCHREIBUNG
Entfernt ein Quote von einem gequoteten Array oder Symbol. Wenn das
letzte Quote von einem Symbol entfernt wird, entsteht ein String.
-BEISPIELE:
+BEISPIELE
unquote('foo); ergibt: "foo"
unquote( '({1,2,3}) ); ergibt: ({1,2,3})
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
diff --git a/doc/efun/unshadow b/doc/efun/unshadow
index 688d5ff..0131a71 100644
--- a/doc/efun/unshadow
+++ b/doc/efun/unshadow
@@ -1,21 +1,10 @@
-FUNKTION
- void unshadow()
+SYNOPSIS
+ void unshadow()
BESCHREIBUNG
- Das aufrufende Objekt wird als Shadow von allen anderen Objekten
- entfernt, denen es uebergeworfen war. Wenn dem aufrufenden Objekt
- selbst ein Shadow uebergeworfen war, wird dieser entfernt.
- Man sollte diese (s)efun rufen, bevor man den Schatten zerstoert.
-
-BEISPIELE
- // B beschattet A
- void b::stop_shadowing() {
- unshadow();
- }
+ Das aufrufende Objekt wird als Shadow von allen anderen Objekten
+ entfernt, denen es uebergeworfen war. Wenn dem aufrufenden Objekt
+ selbst ein Shadow uebergeworfen war, wird dieser entfernt.
SIEHE AUCH
- Generell: shadow(E)
- Rechte: query_allow_shadow(M), query_prevent_shadow(L)
- Informationen: query_shadowing(E)
-
-20.08.2009, Zesstra
+ shadow(E), query_shadowing(E)
diff --git a/doc/efun/upper_case b/doc/efun/upper_case
index ac1ffa5..a63eef0 100644
--- a/doc/efun/upper_case
+++ b/doc/efun/upper_case
@@ -1,11 +1,11 @@
SYNOPSIS
- string upper_case(string str);
+ string upper_case(string str)
BESCHREIBUNG
Wandelt alle Zeichen in <str> in Grossbuchstaben um und gibt das
Resultat zurueck.
-BEISPIEL
+BEISPIELE
upper_case("Heya!") ergibt: "HEYA!"
SIEHE AUCH
diff --git a/doc/efun/users b/doc/efun/users
index 48b4ae3..05ec115 100644
--- a/doc/efun/users
+++ b/doc/efun/users
@@ -1,5 +1,5 @@
SYNOPSIS
- *object users();
+ object * object users()
BESCHREIBUNG
Liefert ein Array, das alle interaktiven Benutzer enthaelt.
diff --git a/doc/efun/utime b/doc/efun/utime
index 96218af..1566019 100644
--- a/doc/efun/utime
+++ b/doc/efun/utime
@@ -1,21 +1,21 @@
SYNOPSIS
- *int utime()
+ int * utime()
BESCHREIBUNG
Liefert ein Array der Zeit, die seit dem 01. Januar 1970,
- 00:00:00 GMT vergangen ist, mit Genauigkeit in Mikrosekunden
+ 00:00:00 GMT vergangen ist, mit einer Genauigkeit in Mikrosekunden
(0.000001 Sekunden).
Zurueck gegeben wird ein Array der Form:
int[0]: Anzahl Sekunden seit Beginn der Zeitrechnung
int[1]: Anzahl Mikrosekunden innerhalb der aktuellen Sekunde
-BEISPIEL
+BEISPIELE
write(ctime(utime())+"\n");
Gibt das aktuelle Datum und Zeit zurueck.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.9.
SIEHE AUCH
diff --git a/doc/efun/variable_exists b/doc/efun/variable_exists
index 1bbd843..65337e5 100644
--- a/doc/efun/variable_exists
+++ b/doc/efun/variable_exists
@@ -1,8 +1,8 @@
SYNOPSIS
#include <functionlist.h>
- string variable_exists(string str [, int flags]);
- string variable_exists(string str, object obj [, int flags]);
+ string variable_exists(string str [, int flags])
+ string variable_exists(string str, object obj [, int flags])
BESCHREIBUNG
Sucht eine Varialbe <str> in this_object() oder (falls angegeben)
@@ -22,7 +22,7 @@
sie fuer das aufrufende Objekt nicht sichtbar sind), wird 0 zurueck
geliefert.
-AENDERUNGEN
+GESCHICHTE
Eingefuehrt in LDMud 3.2.10.
SIEHE AUCH
diff --git a/doc/efun/variable_list b/doc/efun/variable_list
index 673b377..48bd9c6 100644
--- a/doc/efun/variable_list
+++ b/doc/efun/variable_list
@@ -1,9 +1,9 @@
GESCHUETZT
SYNOPSIS
- #include <sys/functionlist.h>
- #include <sys/lpctypes.h>
+ #include <functionlist.h>
+ #include <lpctypes.h>
- *mixed variable_list(object obj, int flags = RETURN_FUNCTION_NAME);
+ mixed *variable_list(object obj, int flags = RETURN_FUNCTION_NAME)
BESCHREIBUNG
Liefert ein Array mit Informationen ueber die Variablen von <obj>.
@@ -12,7 +12,7 @@
im Array abgespeichert:
- der Name der Variablen
- die Flags der Variablen (siehe weiter unten)
- - der Rueckgabetyp (gemaess mudlib/sys/lpctypes.h)
+ - der Rueckgabetyp (gemaess <lpctypes.h>)
- der Wert der Variablen
<obj> kann als Objekt oder als Dateinamen uebergeben werden. Im
@@ -24,7 +24,7 @@
<obj>).
Mit <flags> wird festgelegt, welche Informationen ueber welche
- Variablen abgefragt werden. Folgende Flags aus <sys/functionlist.h>
+ Variablen abgefragt werden. Folgende Flags aus <functionlist.h>
koennen mit binaerem Oder kombiniert werden:
Auswahl der gesammelten Information:
@@ -48,13 +48,11 @@
TYPE_MOD_NO_MASGK die Variable ist "nomask" deklariert
TYPE_MOD_PUBLIC die Variable ist "public" deklariert
- All diese Flags sind in mudlib/sys/functionlist.h definiert und
- sollten an einen allgemein zugaenglichen Platz kopiert werden.
- Die Rueckgabewerte sind in mudlib/sys/lpctypes.h definiert, die
- auch in die Mudlib kopiert werden sollten.
+ All diese Flags sind in <functionlist.h>, die Rueckgabewerte in
+ <lpctypes.h> definiert.
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.10
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.10.
SIEHE AUCH
inherit_list(E), functionlist(E), variable_exists(E)
diff --git a/doc/efun/widthof b/doc/efun/widthof
index e3ac599..6312d3d 100644
--- a/doc/efun/widthof
+++ b/doc/efun/widthof
@@ -1,16 +1,16 @@
SYNOPSIS
- int widthof(mapping map);
+ int widthof(mapping map)
BESCHREIBUNG
Liefert die Anzahl Values pro Key im Mapping <map>. Wenn <map> 0 ist,
ist das Resultat 0.
-BEISPIEL
+BEISPIELE
mapping map = (["foo" : 1;2]);
widthof(map) ergibt 2.
-AENDERUNGEN
- Eingefuehrt in LDMud 3.2.6
+GESCHICHTE
+ Eingefuehrt in LDMud 3.2.6.
SIEHE AUCH
sizeof(E), mkmapping(E), m_reallocate(E), m_values(E), unmkmapping(E)
diff --git a/doc/efun/wizlist_info b/doc/efun/wizlist_info
index 674ec9a..91c1bae 100644
--- a/doc/efun/wizlist_info
+++ b/doc/efun/wizlist_info
@@ -1,38 +1,39 @@
+GESCHUETZT
SYNOPSIS
#include <wizlist.h>
mixed * wizlist_info()
-DESCRIPTION
- Returns an array with the interesting entries of the wizlist.
- Needs to be privileged by the master object.
+BESCHREIBUNG
+ Liefert ein Array mit Eintraegen aus der Wizlist (der internen
+ Goetterliste). Die Benutzung muss durch das Masterobjekt erlaubt
+ werden.
- The result is an array with one entry for every wizard (uid).
- Every entry is an array itself:
+ Das Resultat ist ein Array mit einem Eintrag fuer jeden Gott (uid).
+ Jeder Eintrag enthaelt wiederum ein Array mit folgenden Elementen:
- string w[WL_NAME] = Name of the wizard.
- int w[WL_COMMANDS] = Weighted number of commands execute by
- objects of this wizard.
- int w[WL_COST],
- int w[WL_GIGACOST] = Weighted sum of eval_costs.
- int w[WL_TOTAL_COST],
- int w[WL_TOTAL_GIGACOST] = Total sum of eval_costs.
- int w[WL_HEART_BEATS] = Weighted count of heart_beats.
- int w[WL_CALL_OUT] = Reserved for call_out() (unused yet).
- int w[WL_ARRAY_TOTAL] = Total size of arrays in elements.
- int w[WL_MAPPING_TOTAL] = Total size of mappings in elements.
- int w[WL_STRUCT_TOTAL] = Total size of structs in elements.
- mixed w[WL_EXTRA] = Extra wizlist-info if set.
+ string w[WL_NAME] Name des Gottes
+ int w[WL_COMMANDS] Gewichtete Anzahl Kommandos, die von
+ Objekten dieses Gottes ausgefuehrt
+ wurden
+ int w[WL_COSTE] Gewichtete Summe der Eval-Kosten
+ int w[WL_GIGACOST] Gewichtete Summe der Eval-Kosten
+ int W[WL_TOTAL_COST] Totale Summe der Eval-Kosten
+ int w[WL_TOTAL_GIGACOST] Totale Summe der Eval-Kosten
+ int w[WL_HEART_BEAT] Gewichtete Anzahl der heat_beat()s
+ int w[WL_CALL_OUT] Reserviert fuer call_out()s
+ (bisher nicht implementiert)
+ int w[WL_ARRAY_TOTAL] Totale Groesse aller Arrays in
+ Elementen
+ mixed w[WL_EXTRA] Die eigentliche Wizlist-Info
- The 'weighted' entries decay every hour by 10%.
+ Die "gewichteten" Werte verfallen pro Stunde um 10%.
-HISTORY
- LDMud 3.2.10 split the old WL_EVAL_COST into WL_COST and WL_GIGACOST
- to accomodate for longer uptimes, and introduced
- WL_TOTAL_COST/WL_TOTAL_GIGACOST.
- LDMud 3.3.174 added WL_MAPPING_TOTAL.
- LDMud 3.3.? added WL_STRUCT_TOTAL.
+GESCHICHTE
+ LDMud 3.2.10 trennte das alte WL_EVAL_COST in WL_COST und WL_GIGACOST,
+ um laengeren Uptimes gerecht zu werden. Ausserdem wurde
+ WL_TOTAL_COST und WL_TOTAL_GIGACOST eingefuehrt.
-SEE ALSO
- privilege_violation(M), set_extra_wizinfo_size(E)
+SIEHE AUCH
+ privilege_violation(M), set_extra_wizinfo_size(E),
get_extra_wizinfo(E), set_extra_wizinfo(E)
diff --git a/doc/efun/write b/doc/efun/write
index a3041b0..276e35d 100644
--- a/doc/efun/write
+++ b/doc/efun/write
@@ -1,37 +1,32 @@
-SYNOPSIS:
+VERALTET
+SYNOPSIS
void write(mixed msg)
-DESCRIPTION:
- Write out something to the current player. What exactly will
- be printed in the end depends of the type of msg.
- Please mind: if there is no current player (this_player()), the
- function will output directly to the driver debug log. Please check
- before!
-
- If it is a string or a number then just prints it out.
-
- If it is an object then the object will be printed in the
- form: "OBJ("+object_name((object)mix)+")"
-
- If it is an array just "<ARRAY>" will be printed.
-
- If the write() function is invoked by a command of an living
- but not interactive object and the given argument is a string
- then the lfun catch_tell() of the living will be invoked with
- the message as argument.
+BESCHREIBUNG
+ Gibt etwas an den aktuellen Benutzer aus. Was genau ausgegeben wird,
+ haengt vom Typ der Meldung <msg> ab.
-EXAMPLES:
+ Folgende Ausgaben erfolgen abhaengig vom Typ von <msg>:
+ String oder Zahl <msg> wird ausgegeben
+ Objekt "OBJ("+object_name((object)msg)+")"
+ Array "<ARRAY>"
+ Mapping "<MAPPING>"
+ Closure "<CLOSURE>"
+
+ Wenn write() von einem Kommando eines Lebewesens aufgerufen wird,
+ dieses Lebewesen aber nicht interaktiv ist, und <msg> einen String
+ enthaelt, wird im Lebewesen die Lfun catch_tell() mit <msg> als
+ Argument aufgerufen.
+
+BEISPIELE
write("Hello world!\n");
-
- Just print out a string.
-
+ Dies gibt den String an den Benutzer aus.
+
write(this_player());
-
- This will print out something like "OBJ(std/player#1234)".
-
- write( ({ "blub" }) );
-
- Will print out "<ARRAY>".
-
-SEE ALSO:
- say(E), tell_object(E), tell_room(E), shout(E), catch_tell(L)
+ Dies erzeugt etwas wie: "OBJ(/std/player#1234)".
+
+ write( ({"blubb"}) );
+ Dies erzeugt "<ARRAY>".
+
+SIEHE AUCH
+ say(E), tell_object(E), tell_room(E), catch_tell(A)
diff --git a/doc/efun/write_bytes b/doc/efun/write_bytes
index bb75484..b8b6b0a 100644
--- a/doc/efun/write_bytes
+++ b/doc/efun/write_bytes
@@ -1,11 +1,15 @@
SYNOPSIS
- int write_bytes(string file, int start, string str);
+ int write_bytes(string file, int start, bytes str)
BESCHREIBUNG
- Schreibt den String <str> ins File <file> und ueberschreibt dabei die
+ Schreibt die Bytefolge <str> ins File <file> und ueberschreibt dabei die
alten Bytes ab Position <start>. Wenn <start> eine negative Zahl ist,
werden die Zeichen vom Ende von <file> an gezaehlt. write_bytes()
liefert 1 bei Erfolg, 0 bei Misserfolg.
+ANMERKUNGEN
+ Seit Version 3.2@232 ist write_bytes() in der Lage, Zeichen
+ aus <str> ans File <file> anzuhaengen.
+
SIEHE AUCH
save_object(E), write_file(E)
diff --git a/doc/efun/write_file b/doc/efun/write_file
index e79fb6b..f268eb4 100644
--- a/doc/efun/write_file
+++ b/doc/efun/write_file
@@ -1,6 +1,7 @@
SYNOPSIS
- int write_file(string file, string str);
- int write_file(string file, string str, int flags);
+ int write_file(string file, string str)
+ int write_file(string file, string str, int flags)
+ int write_file(string file, string str, int flags, string encoding)
BESCHREIBUNG
Haengt den String <str> an die Datei <file> an. Liefert 1 bei Erfolg,
@@ -10,5 +11,13 @@
Schreiben geloescht; das 'anhaengen' wird so effektiv ein
'ueberschreiben'. Defaultwert fuer <flags> ist 0.
+ Mit <encoding> kann man den Zeichensatz angeben, welcher beim Schreiben
+ in die Datei verwendet werden soll. Falls er nicht angegeben oder 0 ist,
+ so wird der Hook H_FILE_ENCODING verwendet.
+
+GESCHICHTE
+ LDMud 3.6.0 fuegte den <encoding>-Parameter hinzu.
+
SIEHE AUCH
- file_size(E), cat(E), write_bytes(E), read_file(E), rm(E)
+ file_size(E), write_bytes(E), write_file(E), read_file(E),
+ read_bytes(E), rm(E), hooks(C)
diff --git a/doc/efun/xml_generate b/doc/efun/xml_generate
index 86506e0..d210d5e 100644
--- a/doc/efun/xml_generate
+++ b/doc/efun/xml_generate
@@ -38,7 +38,8 @@
Unterstuetzung compiliert wurde. In diesem Fall ist das Makro
__XML_DOM__ definiert.
-BEISPIEL
+
+BEISPIELE
xml_generate(({ "abc", 0, 0 })) -> "<abc/>"
xml_generate(({ "abc", ([ "xyz" : "cde" ]), 0 })) -> "<abc xyz="cde"/>"
diff --git a/doc/efun/xml_parse b/doc/efun/xml_parse
index 4649c9a..130063b 100644
--- a/doc/efun/xml_parse
+++ b/doc/efun/xml_parse
@@ -31,14 +31,15 @@
Falls das XML-Tag nichts enthaelt, so ist dieses Element 0.
- Falls der XML-String nicht wohlgeformt ist oder falls nicht genug Speicher
- zur Verfuegung steht, wird eine Fehlermeldung ausgegeben.
+ Falls der XML-String nicht wohlgeformt ist oder falls nicht genug
+ Speicher zur Verfuegung steht, wird eine Fehlermeldung ausgegeben.
Diese Funktion ist nur verfuegbar, wenn der Driver mit Iksemel-
Unterstuetzung compiliert wurde. In diesem Fall ist das Makro
__XML_DOM__ definiert.
-BEISPIEL
+
+BEISPIELE
xml_parse("<abc/>") -> ({ "abc", 0, 0 })
xml_parse("<abc xyz="cde"/>") -> ({ "abc", ([ "xyz" : "cde" ]), 0 })
diff --git a/doc/efun/xor_bits b/doc/efun/xor_bits
index 6f9eab9..885afa8 100644
--- a/doc/efun/xor_bits
+++ b/doc/efun/xor_bits
@@ -1,5 +1,5 @@
SYNOPSIS
- string xor_bits(string str1, string str2);
+ string xor_bits(string str1, string str2)
BESCHREIBUNG
<str1> und <str2> sind beiden Bitstrings. Das Resultat von xor_bits()