Fehlereingabe akzeptiert auch Dateinamen
fixes issue #27172
Der Befehl "fehlereingabe" des Fehlerteufels verarbeitet nun auch
Dateinamen, sofern die Datei existiert. Dies ermoeglicht die
Eingabe von Fehlern an nicht geladenen oder nicht ladbaren
Objekten, wie z.B. *.h-Files.
Dem errord selbst wurde zu diesem Zweck beigebracht, nicht nur mit
Objektpointern, sondern auch mit Dateinamen (Strings) umzugehen.
In diesem Kontext wurde auch die Beschreibung des Befehls auf der
Hilfeseite erweitert.
Zusaetzlich kleiner Typofix in einer Meldung des Teufels. Einen
extra-Commit nur dafuer zu erstellen, erschien uebertrieben.
Change-Id: I8c56c5baf57fad13b83b0120989b3a88f37aa6c6
diff --git a/obj/tools/fehlerteufel.c b/obj/tools/fehlerteufel.c
index a35fec1..da1a7e2 100644
--- a/obj/tools/fehlerteufel.c
+++ b/obj/tools/fehlerteufel.c
@@ -93,11 +93,11 @@
}
public int CmdFehlerEingabe(string arg) {
- object target;
+ object|string target;
if (feingabe)
{
- tell_object(PL, "Du gibts doch bereits einen Fehler ein!\n");
+ tell_object(PL, "Du gibst doch bereits einen Fehler ein!\n");
return 1;
}
feingabe = ([]);
@@ -107,10 +107,17 @@
target = present(arg);
if (!target)
target = find_object(arg); // vielleicht direkt angegeben?
+ // Vielleicht gibt es ja eine Datei, die so heisst?
+ if (!target && file_size(arg) >= 0)
+ target = arg;
}
// wenn nix gefunden, Environment des Magiers nehmen.
if (!target)
+ {
+ tell_object(PL, break_string("Kein Objekt und keine Datei "
+ "angegeben, Fehler wird fuer den Raum eingetragen.",78));
target = environment(environment());
+ }
feingabe[F_OBJ] = target;