MeShell Kommandozeilen-Frontend verfügbar

(DE) Neuigkeiten zu den Themen OS/2, eCS, und dem OS/2-Forum
(EN) News about OS/2, eCS and the OS/2 Forum
Martin Vieregg
Posts: 306
Joined: Tue 19. Aug 2014, 09:30

MeShell Kommandozeilen-Frontend verfügbar

Post by Martin Vieregg » Fri 17. Apr 2020, 16:28

Wer unter Projekte schon mitgelesen hat, weiß es schon:

Inzwischen habe ich das Kommandozeilen-Frontend MeShell 0.52 fertiggestellt. Die deutsche Doku ist jetzt fertig.

MeShell ist ein Editor, in dem cmd.exe oder 4os2.exe ausgeführt wird und der Output und Input umgeleitet wird. Im Unterschied zu anderen Programmen, die cmd.exe ausführen können (Larsen Commander, fm2, epm) kommuniziert der MeShell Editor mit cmd.exe, so dass auch Exceptions (z. B. Ctrl-C Break) wie gewohnt funktionieren. Er erkennt sog. VIO-Programme, die nicht in stout schreiben und zeigt sie in einem separaten ("Vio"-)Fenster an.

Es ist wichtig, die Doku (vor allem Kapitel 1 und 3) zu lesen und zu verstehen, um das Programm sinnvoll nutzen zu können.

Hier kann man MeShell.zip (650 kB) downloaden.

Ich bitte um die Sammlung von Fehlern und Kommentaren und die Übersenung per E-Mail. Danke. Bitte nicht für jeden Punkt eine einzelne E-Mail senden. Ein bekannter Fehler ist dass wenn ein Programm stdin erwartet (z. B. ein Frage stellt und man ein Wort eintippen soll), dass die Frage nicht erscheint, wenn sie nicht durch ein Return abgeschlossen wurde. Es werden dann Frage und Antwort gemeinsam ausgegeben, nachdem man ENTER gedrückt hat...

Das schnellere Scrollen (direkt über den Bildschirmspeicher) ist inzwischen auch umgesetzt, es bringt aber zumindest bei mir weniger als erhofft. Es wird nur aktiviert, wenn das Fenster voll sichtbar (nicht teilwese abgedeckt) ist.

Was für 1.0 geplant ist:

- Befehls-Vervollständigung mit Tab-Taste und optional mit fly-over Dropdown Auswahlfeld
- WPS Integration (ein bißchen geht jetzt schon: markieren und drag and drop in einen Ordner erzeugt eine Textdatei). Vor allem möchte ich, dass ein Doppeklick auf einen Dateinamen aus einem "dir" Befehl und Ähnlichem die Datei über WPS Standardzuordnung öffnet
- eigenes Fenster mit Navigationsbaum, mit zwei Sortierebenen 1 aktuelles Verzeichnis 2 verwendete Befehle
- dann noch zuschaltbar ein Bottom Panel mit einer Anzeige, welche Verzeichnisse bei welchen Laufwerksbuchstaben gerade angemeldet sind, damit man den Überblick behält, wenn man ein Copy dateiname x: ausführt.

Martin Vieregg
Posts: 306
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Sat 18. Apr 2020, 15:39

Hier ist noch ein Screenshot:

MeShell Editorfenster

Es sind wohl schon noch kritische Fehler mit Absturz oder Hängen der WPS enthalten, nur kommen sie selten vor und sie sind nicht so einfach reproduzierbar. Wem es gelingen sollte, einen solchen Fehler reproduzieren zu können, soll bitte eine Schritt-für-Schritt-Anleitung machen. Das wäre noch wichtiger als die log-Datei zu schicken, weil nie sicher ist, ob an der entscheidenden Stelle genügend logs gesetzt sind.

Martin Vieregg
Posts: 306
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Mon 20. Apr 2020, 09:20

Inzwischen habe ich noch kleinere Probleme beheben können. Hier kann man MeShell.zip (650 kB) Version 0.54 downloaden.

Wo es noch ein möglicherweise letztes ernsthaftes Problem gibt, ist wenn ein Programm eine Benutzereingabe erfordert, z. B.
(Y=yes, N=no) and press Enter

und die Frage über Stdout geschickt wird, dann stecken die Zeichen der Frage im Schreibpuffer (des ausgeführten Programms?) und werden noch nicht durch die Pipe geschickt, was erst nach einem EOL (End of line=Return-Endezeichen) geschieht. Von Unix portierte Programme scheinen in diesem Fall die Frage über Stderr zu schicken, dann geht es interessanterweise (seit MeShell 0.54). Beispielsweise funktioniert die Rückfrage bei UNZIP, wenn man ein Archiv erneut auspackt, jetzt einwandfrei. Wenn das Programm VIO Output hat, dann geht es auch (im separaten VIO-Fenster). Programmierer, die miträtseln möchten, können das englische Programmiererforum verfolgen. Es geht jetzt um die Frage, ob man das Leeren des Puffers erzwingen kann. Die Umsetzung sollte kein Problem sein, da MeShell mit einer Helper exe kommuniziert, die in der Session von cmd.exe läuft.

Martin Vieregg
Posts: 306
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Sat 25. Apr 2020, 15:38

Und wieder gibt es eine neue Version, ein reines Bugfix: MeShell 0.55
Es waren noch spezielle Dinge nicht programmiert, etwa das Kopieren mehrerer Befehle aus der Zwischenablage in den Editor. Eine Reihe weiterer Bugs sind nun behoben. Das oben genannte Problem mit der Dateneingabe ist noch nicht behoben. Selbst auf stackoverflow hat noch keiner eine Lösung gefunden.

User avatar
thorolf
Posts: 420
Joined: Wed 25. Dec 2013, 16:14
Location: Rhein-Main

Post by thorolf » Sun 26. Apr 2020, 23:56

Moin,

mal kurz getestet, ist ja noch ein bisschen zu tun :-)

Was noch fehlt ist offensichtlich die Befehls-Vervollständigung via TAB, außerdem sollte der Cursor am Ende der Zeile stehen und nicht am Anfang, wenn man eine Zeile hoch geht.

Und (zumindest) "dir" funktioniert noch nicht so richtig:
meshell_055.jpg
Vielen Dank,
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von thorolf am Sun 26. Apr 2020, 23:57, insgesamt 1-mal geändert.
Grüße,

Thorolf

Martin Vieregg
Posts: 306
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Mon 27. Apr 2020, 09:27

Danke Thorolf für das Feedback. Es geht momentan immer um die Frage, wo sich MeShell anders verhält als cmd.exe im normalen VIO Fenster. Und das Verhalten bei Deinem Beispiel ist völlig OK ! Denn Du hast Slash statt Backslash geschrieben. Wie gesagt, MeShell interpretiert die Befehle nicht selbst, sondern sendet sie "unbesehen" an cmd.exe weiter. Es wäre ein mögliches zukünftiges Feature, im Rahmen der geplanten Tab-Vervollständigung, wo dann MeShell Dateinamen von anderen Befehlen unterschieden lernen muss, eine Slash-Umwandlung einzubauen.

Ich bin immer noch am Kämpfen mit Kleinigkeiten. Neuerdings geht das Kopieren von der Zwischenablage nicht mehr, diesmal habe ich an einer markierten Stelle vergessen, weiterzuprogrammieren... Deshalb gibt es ab sofort schon wieder eine neue Version 0.56, wo nur dieser Fehler behoben ist. Es ist für Außenstehende nur schwer nachvollziehbar, wie knifflig es war, den jetzigen Stand zu erreichen, wenn es auf den ersten Blick wieder so aussieht und sich verhält wie das Original. Vielleicht so viel: MeShell.exe hat (incl. Haupt-Thread) 4 Threads, cmdhelper.exe 2 Threads. Da kann definitiv eine Menge schiefgehen.

Aktuelle Version mit behobenem Problem Zwischenablage: MeShell 0.56
außerdem sollte der Cursor am Ende der Zeile stehen und nicht am Anfang, wenn man eine Zeile hoch geht
Du meinst doch die Befehls-Historie mit Cursor-rauf? Das tut er doch.

Es gibt aber trotzdem noch vereinzelt Bugs, auch härtere Geschichten mit Einfrieren der WPS. Und solange so etwas passiert, möchte ich noch keine weiteren Funktionen einbauen, weil es dann schwieriger wird, die Bugs zu fixen. Wenn Euch so etwas passiert und ihr das reproduzieren könnt, dann bitte melden. Ich habe hierfür unter Projekte eine neue Diskussion gestartet. Es kann auch noch Kommandozeilenprogramme geben, wo es noch nicht rund läuft. In solchen Fällen bitte auch berichten. Danke.

Neue Diskussion in Projekte:

MeShell Kommentare und Bugreports

Martin Vieregg
Posts: 306
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Thu 7. May 2020, 15:56

Es gibt wieder eine neue Version 0.60 von MeShell:

Hier kann man MeShell.zip (650 kB) downloaden.

MeShell Kommentare und Bugreports bitte hier

Das wurde geändert oder ist neu:
  • WPS Integration (siehe Doku Kapitel)
  • Systemmenü-Einträge wie im original Kommandozeilenfenster
  • Wenn die Output- und Befehlshistorie gespeichert wird (Einstellungen-Buch Seite "Save"), dann werden nun auch die aktuellen Verzeichnisse gespeichert und beim erneuten Starten von MeShell wiederhergestellt.
  • Unix Output wird korrekt angezeigt.
  • Weitere Bugfixe.
Es gibt ein Icon, das den WPS-Ordner des aktuellen Verzeichnisses herstellt. Man kann Ordner in das Editorfenster werfen und das Verzeichnis wird angemeldet (im readonly Bereich) oder als Text eingefügt (im Prompt-Bereich). Doppelklick auf einen Dateinamen öffnet die Datei per WPS-Standardzuordnung, auch wenn nur der Name ohne Verzeichnis angegeben ist, etwa bei "dir".

Martin Vieregg
Posts: 306
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Wed 20. May 2020, 12:59

Ich habe eine weitere Version 0.63 von MeShell hochgeladen:

MeShell.zip (650 kB)

MeShell Kommentare und Bugreports bitte hier

0.63 ist ein weiteres reines Bugfix, es sind mehrere wichtigere Sachen behoben, wo MeShell einfrieren konnte. Das nächste zu bearbeitende Thema ist Syntax-Highlightning. Wer noch 0.60 nutzt, bitte auf jeden Fall aktualisieren.

Einfrier-gefährdet war vor allem noch das Starten von MeShell sowie das Kopieren mehrerer Befehls-Zeilen aus der Zwischenablage.
Zuletzt geändert von Martin Vieregg am Wed 20. May 2020, 16:54, insgesamt 1-mal geändert.