MeShell Kommentare und Bugreports

(DE) Projekte für OS/2, eCS und ArcaOS
(EN) OS/2, eCS and ArcaOS related projects
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

MeShell Kommentare und Bugreports

Beitrag von Martin Vieregg »

Ich bitte Euch, hier entsprechende Kommentare und Fehlerberichte zum Kommandozeilen-Frontend MeShell zu schreiben. Der Download-Link ist immer derselbe: MeShell Archiv Aktuell ist die Versionsnummer 0.56.

Es gibt vor allem zwei Punkte, wo ich Eure Unterstützung benötige:
(1) Es gibt noch vereinzelt Bugs, auch härtere Geschichten mit Einfrieren der WPS. Das kommt selten vor und ist schwer zu reproduzieren. Wenn es Euch aber gelingt, einen Fehler zu reproduzieren, dann bitte ich um eine Anleitung. (Gerne auch hier nur eine kurze Beschreibung und die Details dann per E-Mail an mich.)

(2) Es wird noch Kommandozeilenprogramme geben, wo es hakt. Wenn ihr so ein Programm findet, dann bitte ich um diese Information. Danke.
Benutzeravatar
thorolf
Beiträge: 563
Registriert: Mi 25. Dez 2013, 16:14
Wohnort: Rhein-Main

Beitrag von thorolf »

Martin Vieregg hat geschrieben: Mo 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.
uups, sorry stimmt, zuviel bash und *nix, mit Backslash geht's wie es soll :D
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.

Okay, wenn die TAB-Vervollständigung noch nicht implementiert ist, kann sie ja noch nicht funktionieren ;)
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.
Nö, Pfeil hoch holt den vorherigen Befehl zurück, aber der Cursor steht immer am Anfang der Zeile.

Ist zumindest "ungewohnt", denn überall anders steht er am Ende der Zeile.

Wenn ich Zeit finde teste ich gerne ab und zu die neue Version, allerdings nur grob, denn für viel mehr "reicht's" gerade nicht.
Grüße,

Thorolf
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Das ist aber komisch. Bei mir steht bei der Cursor-rauf/runter History der Cursor immer am Ende des gerade erschienenen Befehls. Kann jemand anderes noch das von Thorolf beschriebene Verhalten bestätigen? Ich habe auch kein Setting programmiert, wo man das auswählen könnte, er sollte es immer so machen und tut es bei mir auch immer so.

Was ich bis 1.0 noch programmieren möchte (Ausschnitt aus HLP-Datei)
  • Befehls-Vervollständigung mit Tab-Taste und optional mit fly-over Dropdown Auswahlfeld
  • WPS Integration. U.a. Doppeklick auf einen Dateinamen aus einem "dir" Befehl und Ähnlichem öffnet die Datei über WPS Standardzuordnung
  • eigenes Fenster mit Navigationsbaum, mit zwei Sortierebenen 1 aktuelles Verzeichnis 2 verwendete Befehle
  • 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. Evtl. und/oder auch eine Bubblehilfe oder ein fly-over Feld, die bei Maus über oder Textcursor bei x: dann das angemeldete Verzeichnis anzeigt
Gerne höre ich mir noch weitere Ideen und Vorschläge an.
Benutzeravatar
aschn
Beiträge: 1363
Registriert: Mi 25. Dez 2013, 22:47

Beitrag von aschn »

Martin Vieregg hat geschrieben: Mo 27. Apr 2020, 23:30 Kann jemand anderes noch das von Thorolf beschriebene Verhalten bestätigen?
Nein, hier funktioniert es auch.
Andreas Schnellbacher
Benutzeravatar
aschn
Beiträge: 1363
Registriert: Mi 25. Dez 2013, 22:47

Beitrag von aschn »

Ich hab noch einen Vorschlag:

Gut, dass man die Hintergrundfarbe mit der Farbpalette einstellen kann. Leider geht das nicht mit der Vordergrundfarbe. Bei PM-Programmen ist es üblich dazu Ctrl+MB_drag zu verwenden.
Andreas Schnellbacher
Benutzeravatar
thorolf
Beiträge: 563
Registriert: Mi 25. Dez 2013, 16:14
Wohnort: Rhein-Main

Beitrag von thorolf »

Martin Vieregg hat geschrieben: Mo 27. Apr 2020, 23:30 Das ist aber komisch. Bei mir steht bei der Cursor-rauf/runter History der Cursor immer am Ende des gerade erschienenen Befehls.
nee, bei mir nicht, auch nicht mir der gerade neu "installierten" Version 0.56.

Ich packe das Zip dafür aus, öffne den Ordner und doppel-klicke die MeShell.exe. Dann gibt's zweimal "Ja" und ich kann lostippen.

Gehe ich mit dem Pfeil hoch/runter, springt der Cursor immer an den Anfang der Zeile, egal wo er zuvor gestanden hat.

Getestet mit einem frisch installiertem ArcaOS 5.0.4 unter VBox 6.1 (MacOS X).
Grüße,

Thorolf
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Gut, dass man die Hintergrundfarbe mit der Farbpalette einstellen kann. Leider geht das nicht mit der Vordergrundfarbe. Bei PM-Programmen ist es üblich dazu Ctrl+MB_drag zu verwenden.
Interessant. Das war mir gar nicht mehr geläufig. Das ist eine Fähigkeit nicht des Editors, sondern der WDsibyl Umsetzung von Controls allgemein. Ich schaue mal, ob ich das Ctrl-Farbe einbauen kann. Gespeichert wird die Farbe aber momentan noch nicht, das müsste ich auch einbauen. (Wenn dann in allen meinen Editoren.)

Für Thorolfs Verhalten bzgl. der Cursorposition bei der Befehls-Historie habe ich noch keine Erklärung. Mich würde interessieren, ob es jemand anderes auch schon beobachtet hat und was für eine Hardware er hat.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Leider geht das mit der Hintergrundfarbe und Drag and Drop doch nicht so einfach. MeShell bekommt den Farbwechsel gar nicht mit, das findet nur im OS/2 Control selbst statt. Man müßte erstmal in WDsibyl für ein tControl ein neues Event DropColor programmieren. Das ist ein bißchen aufwendiger, es würden aber dann alle WDsibyl-Projekte davon profitieren. Das Fallenlassen von Farben ist ja OS/2-spezifisch, ich weiß kein weiteres OS, das das kann.

MeShell 0.60 macht Fortschritte und ist bald verfügbar. Eingebaut ist nun
  • WPS Integration mit allerlei Drag and Drop
  • beim Speichern und Wiederherstellen der Sitzung werden jetzt die angemeldeten Verzeichnisse restauriert
  • Unix Output (nur mit ^J am Zeilenende) hatte noch nicht funktioniert
Aktuell schaue ich noch, ob ich noch weitere Systemmenüeinträge hinbekomme, vor allem damit die Alt-X Tasten für Zwischenablage wieder wie gewohnt funktionieren.

Die von vielen erwartete Syntax-Completion wird dann als nächstes für 0.70 angegangen.
morcvomorc
Beiträge: 189
Registriert: Fr 3. Jan 2014, 09:42

Beitrag von morcvomorc »

Hallo,

Vielen Dank für deine Mühe.
Habe heute etwas damit rumgespielt und mir ist folgendes aufgefallen. Befindet man sich nicht in einem Verzeichnis so funktioniert das Ordner öffnen nicht.
Dateianhänge
meshell2.png
meshell2.png (10.4 KiB) 11748 mal betrachtet
meshell1.png
meshell1.png (9.8 KiB) 11748 mal betrachtet
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Ja, ist mir inzwischen auch aufgefallen und habe ich schon fixen können.
Dann habe ich noch einen anfänglichen Fehler reproduzieren können, dass der Cursor bei der Befehlshistorie (Cursor rauf/runter) nicht ganz rechts steht. Ist auch gefixt. (Aber noch nicht hochgeladen.)

Ich werde mich in den nächsten Tagen noch um das Thema Farben bei stderr (z. B. bei Benutzung von gcc) kümmern und man wird dann nicht nur für Text allgemein und für Hintergrund eine Farbe wählen können, sondern für stdout und für stderr separate Farben auswählen können. Stderr Farbwechsel muss noch programmiert und getestet werden. Es ist mir erst jetzt durch das Userfeedback klar geworden, dass Kommandozeilencompiler überwiegend in stderr schreiben, und zwar farbig.

Ich werde dann eine Version 0.61 veröffentlichen. Als nächstes kommt dann für 0.70 Syntax Completion.

Noch nicht geklärt ist immer noch die Situation, dass ein Anwenderprogramm eine Frage ohne Enter am Ende über Stdout schickt, die Frage erst angezeigt wird, nachdem man die Antwort getippt und Return gedrückt hat. Ich habe aber inzwischen herausgefunden, dass alle derartigen Programme genau wegen dieses Problems, die aus einer professionellen Quelle stammen (Unix-Projekte, IBM-Code) für die Frage stderr verwenden. Dann geht es. Beispielsweise wenn man mit info-zip unzip gefragt wird, ob man eine Datei überschreiben soll. Ich bin mir jetzt nicht mehr sicher, ob ich hier noch eine Lösung anbieten kann. Selbst in stackoverflow hat mir keiner weiterhelfen können. Das Problem ist OS-übergreifend.

Ich finde als Anwender selbst, dass das Restaurieren nicht nur des Editorinhalts, sondern auch der angemeldeten Verzeichnisse in 0.60 im Alltag wirklich ein Fortschritt ist. Man kann eine Sitzung wegklicken und später genau an der Stelle weitermachen, wo man aufgehört hat, ohne dass man gedanklich den Faden verliert. Bislang wird der Editorinhalt kumuliert und man muss ihn selbst von Zeit zu Zeit löschen. Beim später noch geplanten Navigationsbaum wird es dann auch eine Datums-Navigation geben. Ob und wie ich mit dem Ansammeln der Daten umgehe, weiß ich noch nicht.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Die Version MeShell 0.61 ist fertig.
  • ANSI-ESC Farben in Teilen neu geschrieben
  • Stderr Text- und Hintergrundfarbe kann von Nutzer geändert werden (ebenfalls rechte Maustaste Popup - Optionen)
  • Strng gedrückt halten bei Doppelklick auf Dateiname kopiert den Dateinamen an die Cursorposition hinter dem Prompt
  • kleinere Bugfixe.
Bei Verwendung von GCC bitte -fdiagnostics-color=always verwenden. Dann kommt der Output farbig. Bitte die Farben überprüfen und berichten, ob die Farben jetzt wirklich einwandfrei funktionieren (ggfs. mit normalem Kommandozeilenfenster vergleichen).

Es gibt weiterhin zwei Probleme, die eine gemeinsame Ursache haben. Es kann vorkommen, dass
- stderr output vor stdout Output erscheint (falsche Reihenfolge)
- eine Frage nicht erscheint, wenn der User etwas eingeben soll.

Das liegt daran, dass man den Puffer leeren muss. In Standard C geht das so:

Code: Alles auswählen

  char Expression[200];
  printf ("Enter an expression: "); fflush (stdout); scanf ("%s", Expression);
  printf ("You have entered: %s\n", Expression);

  flush (stdout); fprintf (stderr, "An error has occured.");
Mit OS/2 APIs schreibt man "DosResetBuffer" statt "fflush".

Wer solche Programme unter OS/2 geschrieben hat, bitte aktualisieren/korrigieren, danke. Professionelle Quellen haben das berücksichtigt.

WDsibyl unterstützt Stderr noch gar nicht. Ich werde versuchen, das in nächster Zeit einzubauen und gleich auch für das fflushen zu sorgen...
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Schon wieder eine neue Version MeShell 0.62.

Diesmal ist es nur ein kleines Bugfix mit gleich einer Reihe von behobenen Fehlern, die allesamt Farben und die Reihenfolge von stdout und stderr betreffen.

Wer den farbigen Output und stderr nutzt (z. B. Compileroutput), bitte aktualisieren.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Ich hatte extrem sporadisch Hänger beim Starten von MeShell (LED leuchtet gelb und es kommt kein Prompt) und konnte das inzwischen fixen, der Fix ist aber in 0.62 noch nicht enthalten. Hat noch jemand damit Probleme? Wenn es sehr nerven sollte, gibt es nochmal ein Miniupdate. Das Verhalten bei diesem Fehler dürfte von Rechner zu Rechner unterschiedlich sein. Es werden ja am Anfang mehrere Threads und Programme gestartet, und das Timing konnte schiefgehen, je nachdem wie schnell ein Thread abgearbeitet wurde, weil eine bestimmte Sache in einem Thread schon erledigt sein muss, bevor ein anderer Thread an einer bestimmten Stelle weitermachen darf. Im englischen Programmiererforum wurde das recht treffend als "race problem" bezeichnet, und es ist nicht das erste Mal, dass ich auf ein solches Problem gestoßen bin.

Als nächstes kommt das große Thema "syntax completion" dran (0.70), es gibt also kurzfristig keine neue Version mehr. Ich möchte das aufwendiger als in anderen Programmen umsetzen:
  • ich möchte nicht nur Daten hinter dem Befehl, sondern auch die Befehle selbst vervollständigen (eine Auswertung des PATH habe ich schon in DO programmiert)
  • es wird nicht nur eine Tab-Vervollständigung, sondern wahlweise auch ein automatisch auftauchendes Dropdownfeld erzeugt, das aber nicht den Focus bekommt und natürlich nicht den Input abdeckt. Das habe ich schon in Textbuch programmiert, hier können Buchungssätze per Dropdown-Flyover vervollständigt werden.
  • man wird alles im Einstellungen-Buch zu- und abschalten können.
Wenn sich jemand für MeShell engagieren möchte und sich sehr gut mit der Kommandozeile auskennt: Für die Befehlsvervollständigung gibt es zum einen die internen cmd.exe und 4os2.exe Befehle und zum anderen die Programme aus der PATH Liste. Ich benötige eine Liste der existierenden Befehle zum einen für cmd.exe und zum anderen für 4os2.exe, die man wirklich in die Kommandozeile sinnvoll eintippen kann und die
- nicht für die Config.sys gedacht sind
- intern implementiert und nicht extern sind (z. B. XCOPY.EXE)
- nicht nur in Batchdateien oder REXX-Skripten verwendet werden.

Wenn sich jemand bereit erklärt, dann bitte hier kurz melden, dass nicht zwei Leute sich darübermachen. Danke. Ich benutze die Kommandozeile gerne und viel, doch viele ausgefallenere Befehle sind mir gar nicht wirklich geläufig und ich müsste recht viel nachschlagen.

In dem Zusammenhang würde ich mich über Hinweise freuen, welche Informationen noch in die Datei history_default.cmd geschrieben werden sollten, um die Sitzung möglichst vollständig zu restaurieren. Z. B. SUBST, ASSIGN ? PROMPT soll allerdings nicht verwendet werden, wie das in der Doku ausführlich erklärt ist.
Benutzeravatar
aschn
Beiträge: 1363
Registriert: Mi 25. Dez 2013, 22:47

Beitrag von aschn »

Nebenbei: SUBST und ASSIGN sind DOS-Befehle.
Andreas Schnellbacher
Benutzeravatar
aschn
Beiträge: 1363
Registriert: Mi 25. Dez 2013, 22:47

Beitrag von aschn »

Hier sind alle Befehle aus cmdref.inf für cmd.exe. Die nicht markierten sind intern. Legende am Ende:

Code: Alles auswählen

The following commands help you work with and maintain your files and directories: 
   
E  ATTRIB Turns the read-only and archive attributes of a file ON or OFF. 
E  BACKUP Saves one or more files from one disk to another. 
   CD or CHDIR Changes the current directory or displays its name. 
   COMP Compares the contents of the first set of specified files with the contents of the second set of specified files. 
   COPY Copies one or more files and combines files. 
   DEL or ERASE Deletes one or more files. 
   DIR Lists the files in a directory. 
E  EAUTIL Splits and joins extended file attributes. 
E  FIND Searches a file for a specific string of text. 
   MD or MKDIR Creates a new directory. 
   MORE Sends output from a file to the screen, one full screen at a time. 
   MOVE Moves one or more files from one directory to another directory on the same drive. 
P  PICVIEW Displays a picture file. 
   PRINT Prints or cancels printing of one or more files. 
   RD or RMDIR Removes a directory. 
   RECOVER Recovers files from a disk containing defective sectors. 
   REN or RENAME Changes the name of a file. 
E  REPLACE Selectively replaces files. 
E  RESTORE Restores one or more backup files from one disk to another. 
E  SORT Sorts information by letter or number. 
   TREE Displays all the directory paths and optionally lists files. 
   TYPE Displays the contents of a file. 
   UNDELETE Recovers deleted or erased files. 
P  VIEW Displays online documents. 
E  XCOPY Selectively copies groups of files, including those in subdirectories, from one disk to another.
   
   
Programs use varying amounts of resources from the system (memory and storage, for example).
Careful planning is required to select the correct system configuration and to satisfy
short-term and long-term requirements.
The following commands help you manage the programs on your system: 
   
D  APPEND Tells the system where to locate data files outside of the current directory when this command is added to your AUTOEXEC.BAT file. 
   DETACH Starts a noninteractive program. 
   DPATH Specifies the search path for data files outside a current directory. 
K  LIBPATH Identifies the location of dynamic link libraries. 
K  MAXWAIT Sets the amount of time a process waits before the system assigns it a higher priority. 
K  PRIORITY Selects priority calculation in scheduling regular class threads. 
   SET Sets one string value in the environment equal to another string for later use in programs. 
   START Starts another OS/2 program in another session. 
K  TIMESLICE Sets the amount of processor time the task receives before it must give up processor resources.
   
   
The following commands help you prepare and maintain your disks and diskettes: 
   
D  ASSIGN Assigns a drive letter to a different drive. 
K  BUFFERS Sets the number of disk buffers for the system. 
E  CHKDSK Scans a disk and checks it for errors. 
E  DISKCOMP Compares the contents of two diskettes. 
E  DISKCOPY Copies the contents of one diskette to another diskette. 
P  LVM Enables you to create and manage volumes from the hard disks on your system. 
E  FORMAT Prepares a disk to accept OS/2 files. 
D  FSACCESS Changes file system access from DOS sessions. 
D  JOIN Joins a disk drive to a specific path. 
K  LASTDRIVE Specifies maximum number of accessible drives. 
   LABEL Displays the volume serial number and creates or changes the volume identification label on a disk. 
D  MEM Displays used and free memory in DOS sessions. 
K  MEMMAN Selects storage allocation options for OS/2 sessions. 
D  SUBST Substitutes a drive letter for another drive and path. 
K  SWAPPATH Specifies the location of the swap file and the minimum amount of remaining disk space. 
   VERIFY Confirms that data written to a disk has been written correctly. 
D  VMDISK Creates an image file of a DOS startup diskette. 
   VOL Displays the disk volume label and serial number. 
   
   
Use the following commands to set up your system, making choices based on your computer type and the tasks you want to perform: 
   
E  ANSI Allows extended keyboard and display support for OS/2 sessions. 
   BOOT Switches operating systems. 
   CHCP Displays or changes the current system code page. 
   CLS Clears the display screen. 
K  CODEPAGE Identifies the two code pages to be used for code-page switching. These code pages must be those supported for the country specified by the country code in the COUNTRY statement. 
K  COUNTRY Specifies the country code and the complete name of the file that contains a set of country information for each code page supported for that country. 
   DATE Displays or sets the system date from the command prompt. 
P  DDINSTAL Provides an automated way to install new device drivers after the operating system has been installed. 
K  DEVICE Installs a device driver that is not on the Device Support diskette. 
K  DEVINFO Certain statements must be added to your CONFIG.SYS file to start code page switching. DEVINFO statements prepare a device (such as your keyboard or display terminal) for code page switching. Separate DEVINFO statements are required for each device to be used for code page switching. 
K  DEVICEHIGH Loads DOS device drivers into upper memory. 
K  FCBS Sets file control block information. 
D  GRAFTABL Allows the extended code page to be displayed when the system is using display adapters in graphics mode. 
V  HELP Provides a help line as part of the command prompt, a help screen, and information related to warning and error messages. 
K  KEYB Specifies a special keyboard layout that replaces the current keyboard layout. 
V  KEYS Retrieves previously issued commands for editing or reuse. 
   MODE Sets operation modes for devices. These operations include: 
      Setting asynchronous communication modes for devices previously installed 
      Setting the display modes for switching adapters 
      Setting parallel printer modes 
      Setting diskette input/output write verification. 
   PATH Specifies the search path for programs and commands. 
K  PAUSEONERROR Allows or prevents pausing when errors or warning messages occur during the processing of the CONFIG.SYS file. 
K  PRINTMONBUFSIZE Sets the size of the buffer for the parallel port device driver. 
   PROMPT Sets the system prompt. 
K  PROTECTONLY Specifies an OS/2-only operating environment. 
K  PROTSHELL Loads the user interface program. 
E  PSTAT Displays process, thread, shared memory, and dynamic-link library information. 
D  RMSIZE Sets the amount of storage used for running DOS programs. 
   RUN Loads and starts a program during system startup. 
   SET Sets one string value in the environment equal to another string for later use in programs. 
E  SPOOL Intercepts and separates data from different sources going to the printer so that printer output is not intermixed. 
E  SYSLOG Logs system events in the System Log file. 
   TIME Displays or changes the time known to the system and resets the time of your computer. 
K  TIMESLICE Sets the minimum and maximum amount of processor time allocated to processes and programs for both OS/2 and DOS sessions. 
   VER Displays the OS/2 version number. 
   
   
The following commands are specifically designed for batch-file and command-processing operations: 
   
   CALL Nests a batch file within a batch file. 
E  CMD Starts another OS/2 command processor. 
E  COMMAND Starts another DOS command processor. 
   ECHO Allows or prevents the display of OS/2 commands when a batch file is running. 
   ENDLOCAL Restores the drive, directory, and variables that were in effect before a SETLOCAL command was issued. 
   EXIT Ends the current command processor and returns to the previous one, if one exists. 
   EXTPROC Defines an external batch-file processor. 
   FOR Allows repetitive processing of commands within a batch file. 
   GOTO Transfers batch processing to a specified label. 
   IF Allows conditional processing of commands within a batch file. 
   PAUSE Suspends batch-file processing. 
K  PROTSHELL Specifies the user interface program and the OS/2 command processor. 
   REM Displays remarks from within a batch file. 
   SETLOCAL Sets the drive, directory, and variables that are local to the current batch file. 
K  SHELL Specifies the DOS command processor. 
   SHIFT Allows more than 10 replaceable parameters to be processed from a batch file. 
   
   
The following list are the valid commands that can be used in your CONFIG.SYS file. For more detailed information about any command,
such as syntax diagrams, related commands, and examples, just double-click on the command. 
   
K  AUTOFAIL Enables information about error conditions to be displayed. 
K  BASEDEV Installs a base device driver by specifying the complete file name of the device driver in your CONFIG.SYS file. 
K  BREAK Instructs DOS to check if the Ctrl and Break keys have been pressed before carrying out a program request. 
K  BUFFERS Sets the number of disk buffers that the system uses. 
K  CODEPAGE Selects the system code pages (defined character sets) to be prepared for code-page switching. 
K  COUNTRY Identifies country-specific information. 
K  DEVICE Installs a device driver by specifying the path and complete file name of the device driver in your CONFIG.SYS file. 
K  DEVICEHIGH Loads a specified DOS device driver into an available upper memory block (UMB) for a DOS session. 
K  DEVINFO Prepares devices, displays, or keyboards for code-page switching. 
K  DISKCACHE Specifies the number of blocks of storage to allocate for control information and for use by the disk cache. 
K  DUMPPROCESS Activates the Process Dump facility. Any application process that traps causes a process dump to be written to a dump file. 
K  FCBS Determines file-control-block (FCB) management information for DOS sessions. 
K  FILES Determines the maximum number of files available in DOS sessions. 
K  IFS Installs a file system (IFS) by specifying the path and complete file name of the file system driver in your CONFIG.SYS file. 
K  IOPL Allows I/O privilege to be granted to requesting processes in OS/2 sessions. 
K  LASTDRIVE Specifies the maximum number of drives that are accessible. 
K  LIBPATH Identifies the locations of dynamic link libraries for OS/2 programs. 
K  MAXWAIT Sets the amount of time a ready-to-run thread waits before the system assigns it a higher priority. 
K  MEMMAN Selects storage allocation options for the OS/2 environment. 
K  PAUSEONERROR Allows or prevents pausing for error messages issued during the processing of the CONFIG.SYS file. 
K  PRIORITY Selects priority calculation in scheduling regular-class threads. 
K  PRIORITY_DISK_IO Specifies disk input/output priority for allications running the foreground. 
K  PROTECTONLY Selects one or two operating environments. 
K  PROTSHELL Loads the user interface program and OS/2 command processor. 
K  RMSIZE Specifies the highest storage address allowed for the DOS operating environment. 
K  RUN Loads and starts a system program during system initialization. Does not start Presentation Manager applications. 
K  SHELL Loads and starts the DOS command processor, COMMAND.COM, or allows you to replace the DOS command processor with another processor. 
K  SUPPRESSPOPUPS Suppresses the display of trap-information messages and directs the trap information to a log file. 
K  SWAPPATH Specifies the size and location of the swapper file (SWAPPER.DAT). 
K  THREADS Sets the maximum number of independent actions, known as threads, of OS/2 sessions. 
K  TIMESLICE Sets the minimum and maximum amount of processor time allocated to processes and programs for both OS/2 and DOS sessions. 
K  TRACE Selects or sets the tracing of system events. 
K  TRACEBUF Sets the size of the trace buffer. Use with the assistance of your technical coordinator. 


K = Kernel
D = DOS
E = Exe
P = PM-Programm
V = Umgebungsvariable
Andreas Schnellbacher
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Danke, Andreas!

Diese Befehle sind ebenso extern:

COMP, MORE, PRINT, RECOVER, TREE, UNDELETE, LABEL, MODE, PROMPT

Interessant ist, dass die meisten Dateinamen dieser externen Programme mit .COM statt mit .EXE enden.

Es bleibt also übrig:
CD CHDIR COPY DEL ERASE DIR MD MKDIR MOVE RD RMDIR REN RENAME TYPE DETACH DPATH SET START VERIFY VOL BOOT CHCP CLS DATE PATH RUN SET TIME VER

Muss ich jetzt noch für 4os2 noch extra Befehle berücksichtigen?
Benutzeravatar
aschn
Beiträge: 1363
Registriert: Mi 25. Dez 2013, 22:47

Beitrag von aschn »

Martin Vieregg hat geschrieben: So 17. Mai 2020, 09:37 Es bleibt also übrig:
CD CHDIR COPY DEL ERASE DIR MD MKDIR MOVE RD RMDIR REN RENAME TYPE DETACH DPATH SET START VERIFY VOL BOOT CHCP CLS DATE PATH RUN SET TIME VER
Wir haben noch übersehen:
  • PATH, DPATH und VERIFY sind auch Umgebungsvariablen.
  • BOOT funktioniert anscheinend nicht wie beschrieben in cmd.exe, kann man also auch weglassen.
  • RUN ist nur Kernel.
  • CALL fehlt noch (ist beides).
Das lohnt damit eigentlich gar nicht. Mir gefällt es sogar bessser, wenn Anfangsbuchstaben nicht durch interne Befehle ergänzt werden, sondern wenn nur im PATH nach ausfürhrbaren Dateien oder an anderer Stelle nach Verzeichnisnamen gesucht wird.

Für 4os2 bin ich zu faul, die Anleitung durchzuarbeiten. Ich benutz das normal auch nicht. Aber da gibt es schon Unterschiede, mit Glück betrifft das aber nur die externen Befehle.
Andreas Schnellbacher
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

CALL verwendet man doch nur in CMD-Dateien? Dann kann man es aus meiner Sicht auch weglassen. Also wäre es dann:

CD CHDIR COPY DEL ERASE DIR MD MKDIR MOVE RD RMDIR REN RENAME TYPE DETACH DPATH SET START VERIFY VOL CHCP CLS DATE PATH SET TIME VER PATH DPATH VERIFY

Das ist nicht wirklich viel. Jezt kann man auch nachvollziehen, warum cmd.exe in der Version 4.0 nur 73 kB und in der Version 4.5 auch nur 98 kB hat. Der Fensterrahmen und die zugehörigen VIO... Aufrufe ist ja ein eigenes Programm, das sind DLLs, die Teil von OS/2 sind.

Dann hätte ich noch gerne jemanden, der sich mit 4os2 gut auskennt und noch die zusätzlichen Befehle heraussucht. Danke.
Zuletzt geändert von Martin Vieregg am Mo 18. Mai 2020, 16:09, insgesamt 2-mal geändert.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Ich habe nun doch noch ein Update MeShell 0.64 fertiggestellt, noch ohne Syntax Completion. Es hat doch noch kleinere Probleme gegeben.

Bei 4os2 ist das Verhalten doch etwas stärker anders als ich gedacht habe. Wenn 4os2 den stdout in ein file oder eine pipe leitet - letzteres ist ja bei MeShell der Fall - führt es eine Reihe von Manipulationen des Outputs aus, aufgefallen ist mir bislang
- ESC ANSI Farbsequenzen werden gefiltert
- Zeilen, die mit Return ohne Carriage anfangen (^M=#13) und eigentlich die vorherige Zeile überdrucken sollten (z. B. bei einer Fortschrittsanzeige) werden komplett herausgefiltert, was ziemliches Chaos anrichtet, da nur die Zeilen angezeigt werden, die sonst beim Output verschwinden.

Ich habe das Andreas Buchinger geschrieben, der das 4os2 Projekt bei Netlabs betreut, dass wir ein Setting benötigen, das alle Manipulationen an redirected Output ausschaltet. Wenn solch ein Setting doch schon existieren sollte, bitte hier melden, danke.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Wie schon in NEWS berichtet, habe ich nun eine neue Version 0.70 mit Syntax Completion fertiggestellt. Schaut Euch die neue Funktionalität bitte genau an und meldet eventuelle Fehler. Ich bin natürlich auch an konzeptionellen Verbesserungsvorschlägen interessiert. So habe ich das Mehrfach-Blättern mit TAB nicht umgesetzt. Ich fand das immer unpassend, weil man keine Ahnung hat, wieviel Optionen zur Verfügung stehen. Ich könnte natürlich einen Mechanismus einbauen, wo das bis beispielsweise 3 oder 5 (einstellbar) Möglichkeiten noch unterstützt wird und bei mehr Optionen dann mit TAB die Flyover-Listbox angezeigt wird. Die sofortige Completion im Editor geschieht nur, wenn es nur eine Option gibt. Es kann auch sein, dass ihr auf Ideen kommt, die ich noch nicht hatte.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Ich habe nun MeShell Version 0.72 fertiggestellt. Es sind nochmals eine ganze Reihe von Ungereimtheiten behoben worden.

MeShell verändert die Eingabezeilen. Wird ein PM-Programm aufgerufen, so wird automatisch "start " davor gesetzt. Wenn man versehentlich ein Win32 oder Win64 Programm aufruft, dann fror zumindest bei mir alles ein. Ein Win32/64 Programm wird jetzt erkannt und "pe" oder "pec" davor gesetzt. Ein Win64 Programm wird mit einem "echo Fehlermeldung" quittiert.

Die Syntax Completion war teilweise noch unvollständig oder fehlerhaft. Befehle mit enthaltener Verzeichnisangabe wurden noch nicht vervollständigt, das geht jetzt. Bitte Konstellationen melden, wo es noch nicht richtig funktioniert.

Ich bin am Überlegen, ob man das Anzeigen der Hint-Fenster, wo während des Tippens Verzeichnisstrukturen durchsucht werden, in einen eigenen Thread verlagert. Ich habe einen recht schnellen Rechner, es gibt nur eine merkliche Verzögerung, wenn man durch ein CD-Laufwerk navigiert. Ihr könnt ja schreiben, ob es euch nervt.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

MeShell Version 0.73 ist jetzt auch schon fertig. Es gibt ein "Bottom Panel", bei dem die aktuell angemelden Verzeichnisse der Laufwerke angezeigt werden. Man kann das im Einstellungen-Buch zusammen mit der Sichtbarkeit des Top Panels ein- und ausschalten. Aus Beqeuemlichkeit habe ich kein eigenes Setting programmiert. (Stört das jemand?)

Jetzt fehlt nur noch das Fenster mit dem Navigationsbaum, mit dessen Hilfe man durch den alten Output navigieren kann. Dann ist MeShell fertig. Der Navigationsbaum wird zwei Gliederungsebenen haben: die erste Ebene sind die angemeldeten Verzeichnisse, und die zweite Ebene zeigt die Befehle an, die eingegeben wurden, während das Verzeichnis angemeldet war.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

MeShell Version 0.81 behebt wieder eine Handvoll Bugs (u.a. Absturz bei Befehls-Historie Cursor rauf/runter) und hat im Einstellungen-Buch auf der Seite "Save" eine Einstellung, wo man die Länge der Output-Historie limitieren kann. Bislang wuchs sie endlos. Die älstesten Eingaben werden nun gelöscht.
Zuletzt geändert von Martin Vieregg am So 9. Aug 2020, 09:34, insgesamt 1-mal geändert.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Leider konnte MeShell 0.81 bei der Befehls-Historie (Cursor rauf/runter) abstürzen. In MeShell Version 0.82 ist das nun behoben, zusammen mit ein paar weiteren Kleinigkeiten.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

In MeShell Version 0.83 sind einige Kleinigkeiten verbessert:
  • Dateinamenvervollständigung auch von Dateinamen mit Leerzeichen
  • Im Navigationsfenster neuer Button "CD" um das selektierte Verzeichnis aktuell zu machen.
  • Beim Start von MeShell und dem Wiederherstellen der aktuellen Verzeichnisse aus der letzten Sitzung per history...cmd Datei werden die aktuellen Verzeichnisse nochmals überprüft, weil es vorkommen kann, dass ein Verzeichnis seit der letzten Sitzung gelöscht wurde.
  • Die Länge der Output-Historie (Einstellungen-Buch Seite "Speichern") wird nun in 1000er-Schritten und nicht mehr in 10.000ern eingestellt.
Im englischen Forum wurde berichtet, MeShell ließe sich beim ersten Mal nicht starten, weil sich nicht auf die Messagebox "German langugage?" klicken ließe. Hat das jemand noch beobachtet?
Antworten