Switch to full style
Diskussionen rund um Eressea, das Fantasy-Strategiespiel.
Antwort erstellen

Echeck 4.4.4

03.01.2019 19:30

Es hat offenbar schon lange kein Release von Echeck für Windows mehr gegeben, und die alte Version kennt u.a. LERNE AUTO nicht. Dem möchte ich temporär abhelfen, indem ich hier die neuste Version publiziere. Es hat sich leider immer noch kein neuer Maintainer gefunden.

echeck.zip
Echeck Version 4.4.4
(132.43 KiB) 597-mal heruntergeladen

Re: Echeck 4.4.4

03.01.2019 22:14

Aus Magellan heraus lässt sich die neue Version leider nicht aufrufen, weil sich die Version nicht ermitteln lässt.

Wenn ich das alte echeck per Kommandozeile aufrufe, dann sieht die erste Zeile folgendermaßen aus:
Code:
ECheck (Version 4.3.4, May  8 2014), Zug-Checker f├╝r Eressea - Freeware!


Bei der neuen Version ist die erste Zeile leer und dann kommt:
Code:
  **  ECheck V4.4.4, Jan  3 2019  **


Wahrscheinlich wird in Magellan die Version aus der ersten Zeile der Ausgabe ermittelt, was jetzt nicht mehr klappt.
Dateianhänge
echeck-Version.JPG

Re: Echeck 4.4.4

03.01.2019 23:24

Kaelasa hat geschrieben:Wahrscheinlich wird in Magellan die Version aus der ersten Zeile der Ausgabe ermittelt, was jetzt nicht mehr klappt.


Das kann ich bestätigen. Es wird die erste Zeile untersucht, darin konkret der Text "version" gesucht, und alles was dahinter (+ Leerzeichen) kommt bis zum nächsten "," als Version interpretiert.

Re: Echeck 4.4.4

04.01.2019 03:39

Bist Du sicher, dass echeck richtig aufgerufen wurde? Wenn es seine Dateien nicht findet, kann es den Text nicht ausgeben:

Code:
$ ./echeck -h

  **  ECheck V4.4.4, Jan  3 2019  **

 kann keine Datei lesen!  -  can't read any file!


Erst wenn man das Spiel und die Sprache an der Kommandozeile angibt, bekommt man den von Magellan gewünschten Output:

Code:
$ ./echeck -Re2 -Lde -h
ECheck (Version 4.4.4, Jan  3 2019), Zug-Checker für Eressea - Freeware!

Benutzung: ./echeck [Optionen] Befehlsdatei


Bzw. in Englisch:
Code:
$ ./echeck -Re2 -Len -h
ECheck (version 4.4.4, Jan  3 2019), order file checker for Eressea - freeware!

Usage:   ./echeck [options] orderfile


Warum muss Magellan überhaupt wissen, welche Version von ECheck installiert ist?

Re: Echeck 4.4.4

04.01.2019 03:44

Kaelasa hat geschrieben:Wenn ich das alte echeck per Kommandozeile aufrufe, dann sieht die erste Zeile folgendermaßen aus:
Code:
ECheck (Version 4.3.4, May  8 2014), Zug-Checker f├╝r Eressea - Freeware!


Was man hier sehr schön sieht, ist das ECheck mit Encodings immer noch nicht umgehen kann. Es schmeißt das ü und andere Umlaute als UTF-8 in den Output, ohne Rücksicht darauf, ob das Terminal das unterstützt. Seufzer.

Vorschlag zur Lösung: Neuer Parameter, echeck -V, gibt nur echeck version 4.4.5 aus, und tut sonst nichts.

Re: Echeck 4.4.4

04.01.2019 04:01

Neuer Versuch, schreibt die Versionsinfo nach stdout:

Code:
$ ./echeck -V
echeck version 4.4.5


echeck.zip
(81.05 KiB) 600-mal heruntergeladen

Re: Echeck 4.4.4

04.01.2019 08:31

Wo wir gerade bei Fehlerchen sind:

In LIESMICH steht:
Folgende Dateien gibt es:
- befehle.txt
- gebaeude.txt

Die Namen der Datein sind jedoch alle in englisch

Re: Echeck 4.4.4

04.01.2019 10:01

Die Datei ist nicht mehr angepasst worden, seit Henning sich noch um ECheck gekümmert hat.

Re: Echeck 4.4.4

04.01.2019 16:46

Enno hat geschrieben:Vorschlag zur Lösung: Neuer Parameter, echeck -V, gibt nur echeck version 4.4.5 aus, und tut sonst nichts.


Eine Lösung für die Integration in Magellan kann es nur sein, wenn sich die neue echeck Version genauso verhält, wie die alte. Oder Magellan muss auf diesen neuen Parameter angepasst werden (was vielleicht sogar die bessere Variante wäre).

In der Klasse magellan.library.utils.JECheck wird für die Ermittelung der echeck Version die Methode getVersion aufgerufen. Dazu wird die erste Zeile der Ausgabe von "echeck -h" ausgewertet:

Code:
  /**
   * Returns the version of the specified ECheck executable file.
   *
   * @throws IOException DOCUMENT-ME
   */
  public static Version getVersion(File eCheckExe, Properties settings) throws IOException {
    Version v = null;
    String version = null;
    String line = null;
    BufferedReader br = null;

    try {
      br = new BufferedReader(new JECheck(eCheckExe, null, "-h", settings));
      line = br.readLine().toLowerCase();
      br.close();

      int verStart = line.indexOf("version ") + "version ".length();
      int verEnd = line.indexOf(",", verStart);

      if ((verStart > 0) && (verEnd > verStart)) {
        version = line.substring(verStart, verEnd);
        // Fiete: problems wirth version 4.3.2-3, build 2-3 cannot convert to int
        // solution: ignore -3 asuming, only in build number a "-" will occure
        int verEnd2 = version.indexOf("-");
        if (verEnd2 > 1) {
          version = version.substring(0, verEnd2);
        }
        v = new Version(version, ".");
      }
    } catch (Exception e) {
      v = null;
      JECheck.log.error(e);
      throw new IOException("Cannot retrieve version information: " + e.toString());
    }

    if (v == null)
      throw new IOException("Cannot retrieve version information");

    return v;
  }

Re: Echeck 4.4.4

04.01.2019 19:50

Echeck antwortet auf -h nur dann wie Magellan es erwartet, wenn es die .txt Datei findet, in der der Helfetext steht, also z.b. e2/de/help.txt - dafür müssen an der Kommandozeile das Spiel und die Sprache angegeben werden (mit -R und -L). Das ist bekloppt konstruiert, aber war soweit ich weiß schon immer so.

Re: Echeck 4.4.6

04.01.2019 20:36

Mir ist eine Idee gekommen, wie man das lösen kann. Die Sprache und Regeln sind jetzt per Default Deutsch und E2, dann findet Eressea dort den Hilfetext, und gibt hoffentlich aus, was Magellan erwartet. Hoffe auf Rückmeldung.

echeck.zip
ECheck 4.4.6
(81.01 KiB) 587-mal heruntergeladen

Re: Echeck 4.4.4

04.01.2019 22:59

Die Version von echeck kann Magellan jetzt richtig lesen. Zumindest kommt jetzt die Fehlermeldung nicht mehr. Und die Befehle werden auch geprüft. Allerdings scheint Magellan murks beim Encoding zu machen. Alle Befehle mit Umlauten oder ß werden als Fehler angezeigt. :(

Also "Gewürz", "Rüstungsbau", "Holzfällen", "Armbrustschießen" usw. werden nicht erkannt und als Fehler markiert. :roll:

Edit: Aber wenn man in Magellan die Textkodierung auf UTF-8 ändert, dann geht es. :D
D.h. bei mir funktioniert jetzt echeck 4.4.6 aus Magellan heraus aufgerufen!

Re: Echeck 4.4.4

15.01.2019 22:59

Gibt es das auch in einer Version für Linux?

Re: Echeck 4.4.4

19.01.2019 20:11

Dael hat geschrieben:Gibt es das auch in einer Version für Linux?


Muss man selber kompilieren. Ich habe keine Ahnung, wie man Debian Pakete baut.

Re: Echeck 4.4.4

20.01.2019 22:32

Ok, dann probier ich mich erstmal am Kompilieren. Wo gibt's denn den Quelltext?
Was das Debian-Packet angeht: Ich hab' einmal eins gemacht. Das war sehr aufwändig. Man könnte ja, wie bei Windows auch, erstmal nur ein zip (oder meinetwegen tgz) nehmen.
Antwort erstellen