Enno hat geschrieben:
Kannst Du das Problem mal auf einen Fall reduzieren, in dem nicht Magellan involviert ist?
Ich kann Magellan nicht vollständig heraus lassen. Aus Magellan heraus habe ich alle Befehle (Datei -> Befehle speichern ...) in der Datei 1112.txt abgespeichert. Und diese Datei mit echeck mit den Optionen, wie ich sie auch in Magellan verwende überprüft:
Code:
# /usr/lib/echeck/echeck -P/usr/lib/echeck -r80 -m -Lde -v4.4.6 -w4 -noroute 1112.txt
Falsche ECheck-Version / Wrong ECheck-Version: 4.4.6
1112.txt|version|4.4.6|Jan 22 2019
1112.txt:faction:dael
Falsche ECheck-Version / Wrong ECheck-Version: 4.4.6
1112.txt|4528|0|Zauberspruch nicht erkannt. `ZAUBERE Erschaffe~einen~magischen~Kräuterbeutel'
1112.txt|warnings|0
1112.txt|errors|1
In dieser Ausgabe von echeck ist der Zauberspruch mit Tilden statt Leerzeichen geschrieben. Also habe ich mal geschaut, wie er in der Datei 1112.txt selber aussieht:
Code:
# grep -i erschaffe 1112.txt
ZAUBERE "Erschaffe einen magischen Kräuterbeutel"
Dort ist er ohne Tilden gespeichert. Die Tilden-Version ist also eine von echeck erstellte Version.
Und die Datei mit den Befehlen ist UTF-8 kodiert:
Code:
# file 1112.txt
1112.txt: UTF-8 Unicode C++ program text
Ok, 'file' glaubt, das ist C++. Naja, nicht so gut geraten, aber bei UTF-8 wird es sich hoffentlich nicht täuschen.
Die Zaubersprüche sind auch in einer Datei, die UTF-8 kodiert ist:
Code:
# file /usr/lib/echeck/e2/de/spells.txt
/usr/lib/echeck/e2/de/spells.txt: UTF-8 Unicode text
Und in der Datei ist der Zauberspruch definiert:
Code:
# grep "Erschaffe einen mag" /usr/lib/echeck/e2/de/spells.txt
Erschaffe einen magischen Kräuterbeutel; 0; 0
Die Datei enthält Beispiele von nicht existierenden Zaubersprüchen:
Code:
# Diese Liste enthält absichtlich keine "echten" Zauber.
# Es sollte jedem leicht fallen, die Liste anzupassen und zu erweitern.
Magische Erbsensuppe; 0; 1 # ein Kampfzauber der stinkenden Ar
Im Beispiel ist der Zauberspruch "Magische Erbsensuppe" mit Leerzeichen eingetragen, nicht mit Tilde, also habe ich den "Erschaffe einen ..." auch so eingetragen.
Ich habe versucht, echeck anzeigen zu lassen, wo es die Dateien her nimmt, die es einliest. Erst ein mal mit -P, weil ich es ja so auch im normalen Aufruf mache:
Code:
# /usr/lib/echeck/echeck -P/usr/lib/echeck -hf
ECheck (Version 4.4.6, Jan 22 2019), Zug-Checker für Eressea - Freeware!
Benutzung: /usr/lib/echeck/echeck [Optionen] Befehlsdatei
Dateien / files:
PARAM: parameters.txt
...# /usr/lib/echeck/echeck -P/usr/lib/echeck -hf
ECheck (Version 4.4.6, Jan 22 2019), Zug-Checker für Eressea - Freeware!
Benutzung: /usr/lib/echeck/echeck [Optionen] Befehlsdatei
Dateien / files:
PARAM: parameters.txt
...
SPELL: spells.txt
...
Hier gibt es leider den Pfad nicht mit aus. Wenn man das -P weg lässt, gibt es den Pfad aus:
Code:
# /usr/lib/echeck/echeck -hf
** ECheck V4.4.6, Jan 22 2019 **
kann keine Datei lesen! - can't read any file!
Pfad / Path: './de'
Dateien / files:
...
Es geht dann ohne -P natürlich vom lokalen Pfad aus, aber was mich überrascht ist, dass es in './de' sucht und nicht in './e2/de' . Ich dachte, ich hätte mal irgendwo gelesen echeck errät Eressea2 versus Eressea3 und schaut entsprechend in .../e2/de bzw. .../e3/de