Inhalt

letzte Änderungen: 7.3.1998

  1. Aufgabe
  2. Version
  3. Installation
  4. Funktionsweise
  5. noch zu erledigen
  6. Übersetzung...

Aufgabe

less ist ein Textfilter der more.exe ersetzen kann. Der Vorteil von less ist, daß man im angezeigtem Text blättern kann, während more nur die Daten einmal von Anfang bis zum Ende anzeigen kann.

Es gibt schon einige Implementationen von less, die auch unter OS/2 laufen. Dieses Projekt hat sich aber zur Aufgabe gemacht, ein kleines und schnelles less zu entwickeln, welches die besonderen Fähigkeiten von OS/2 auch richtig ausnützt.

Diese sind zB.:

less wurde unter der GNU GPL veröffentlicht und ist Public Domain. Näheres zu den Lizenzbedingungen in Verzeichnis doc in der Datei copying.


Inhaltsverzeichnis


Version

Aktuelle Version ist V0.2 vom 7.3.1998

Das Programm ist in C programmiert und wurde mit den IBM C/C++ Compiler entwickelt. Momentan besteht steht eine Abhängigkeit zu diesen Compiler, da ich Routinen für die Suche nach regulären Ausdrücken direkt aus dem Compilerruntime nutze (diese sind nicht ANSI-C). In der Releaseversion soll jedoch ein C-Code entstehen, der mit jedem OS/2 C-Compiler zu übersetzen ist.

Bugreports bitte an Clemens Benden und bitte das Subject mit "netlabs:less" einleiten.

V0.2

Überblick über neue Funktionen / Änderungen

Generelle Hinweise

Durch die Integration eines weiteren Threads ist die Komplexität des Programmes angestiegen. Threads machen insbesondere bei vorzeitigen Programmterminierungen Schwierigkeiten. Dem geneigten Benutzer bitte ich daher, verstärkt darauf zu achten, ob das Programm auch immer richtig terminiert oder ob sich Situationen erzeugen lassen, bei denen das Programm nicht richtig beendet wird und als Prozeßleiche dahin vegetiert ...

Bugfixes

In dieser Version wurde der Fehler behoben, daß Hilfetext nicht richtig angezeit wurden. Außerdem kann der Hilfetext nun nicht mehr durch den Ladethread überschrieben werden.

Änderungen

Das Programm holt nun seine Einstellungen aus einer Ini-Datei (less.ini). Diese Ini-Datei wird über ein Programm (lesscfg) im ETC-Pfad angelegt. Wenn die Environment-Variable ETC nicht existiert oder dort keine INI-Datei zu finden ist, benutzt das Programm die normalen Standardvorgaben.
Das Programm lesscfg ist ein PM-Programm. Dieses Programm erlaubt bereits einige der Vorgaben dauerhaft zu speichern. Außerdem ist man in der Lage, die Farben für den monochromen und den Farbigen Block einzustellen. Dabei können die Farben per Drag & Drop definiert werden. Die Buchstaben V und H stehen für die Vordergrund- und Hintergrundfarbe.

Neue Funktionen

Suche

Die Suchfunktion wurde nun vollständig als Thread implementiert während der Suche kann man weiter im Text blättern. Alle Zeilen, die den Suchbegriff enthalten, werden in einer anderen Farbe dargestellt. Alternativ kann man auch die Anzeige umschalten, so daß nur die Fundstellen farbig sind (Taste P). So kann man leicht einerseits Text finden (ganze Zeile) oder auch nur die Fundstellen betrachten, falls gezielt nur die Treffer sehen will.

Videomodi

Das Programm kann nun im Betrieb den Videomodus ändern. Es stehen 3 Modi zu Verfügung: 25, 30 und 50 Zeilen. Außerdem kann man mit + und - die Anzahl der Spalten varieren.

V0.1

Die aktuelle Version V0.1 ist noch eine sehr frühe Version - ich habe sie nur hochgeladen, damit die Leute auch sehen, daß bei Netl@bs auch wirklich was passiert und nicht nur die großen Brocken wie Warpscape oder Gimp in Angriff genommen werden!
Trotzdem funktioniert diese Version schon einigermaßen gut - auch wenn noch nicht alle Features implementiert sind. Diese nächste Version (V0.2) wird vorraussichtlich Mitte/Ende Februar freigegeben.
Inhaltsverzeichnis


Installation

Das Programm less.exe einfach in ein Verzeichnis kopieren, welches sich im Suchpfad (PATH) von OS/2 befindet. Die Datei less.msg muß in einem Verzeichnis kopiert werden, welches sich in DPATH befindet, da das Programm sonst seine Meldungen nicht findet.

Funktionsweise

Das Programm wird als direkter Ersatz von more genutzt. So schreibt man statt
dir | more nun dir | less

Das Programm startet darauf einen Thread, welcher die Daten aufsammelt. Sobald das Programm gestartet ist, kann man sich die aktuellen Daten bereits ansehen, während der Thread die Daten weiter im Hintergrund lädt.

Mit der Taste F1 kann man sich einen kurzen Hilfetext ausgeben lassen.

Außerdem versteht das Programm folgenden Befehlsparameter beim Aufruf:

                less [Optionen] [Datei]
            
Wird keine Datei angeben, arbeitet das Programm als Filter und ließt von stdin. Es kann so in einer Kette von mehreren Pipes eingebaut werden: dir | less. Alternativ kann man direkt ein Dateinamen angeben: less less.exe.


Optionen

Parameter Beschreibung
-? Ausgabe eines kurzen Hilfetextes, der die möglichen Befehlsparameter beschreibt.
-b Datei wird im binärmodus geöffnet (es erfolgt eine Umsetzung der Zeilenschaltungen).
Hinweis Bei einer Umleitung via PIPE werden die Daten immer im Textmodus und damit immer mit der Umsetzung der Zeilenschaltung angeliefert und auch so angezeigt.
-h Anzeige im Hexmodus beginnen
-j Sobald neue Daten gelesen werden und eine neue Seite voll ist, springt die Anzeige um, so daß die neuen Daten sichtbar werden (so als ob der Benutzer die END-Taste gedrückt hätte).
Diese Funktion ist nur im 'liveModus' (Parameter -u) verfügbar.
-u Das Programm bricht das Einlesen nicht ab, sondern wartet auf neue Daten. Als Anwendung könnte man sich eine Logdatei vorstellen, die von einem anderen Programm geschrieben wird und man nun ständig die neuen Einträge auf den Bildschirm sehen möchte (in Verbindung mit Parameter -j).

Tasten

Navigation
UP Text eine Zeile nach oben scrollen
DOWN Text eine Zeile nach unten scrollen
LEFT Text eine Spalte nach links rollen
RIGHT Text eine Spalte nach rechts rollen
PGUP Text eine Seite oben scrollen
PGDN Text eine Seite nach unten scrollen
HOME Beginn der Datei
END Ende der Datei
Funktionstasten
F1 Onlinehilfe anzeigen
F3 Umschalten zwischen Hex und Ascii-Modus
F7 Textsuche starten
SHIFT F7 Sprung zur nächsten Fundstelle
Ansichtsoptionen
2 Bildschirmmodus mit 25 Zeilen aktivieren
3 Bildschirmmodus mit 30 Zeilen aktivieren
5 Bildschirmmodus mit 50 Zeilen aktivieren
- Anzahl der Spalten verringern
+ Anzahl der Spalten erhöhen
B Umschalten zwischen Farbdarstellung und Schwarzweiss
C Anzeige von Control-Zeichen (ASCII-Code < 32) ein/ausschalten
Diese Funktion kann zB. dazu dienen, die eigentliche Länge einer Zeile festzustellen, da man die eigentliche Länge einer Zeile nun an den CR Zeichen sehen kann.
F Anzeige von Suchtreffern ein/ausschalten. Wenn die Anzeige ausgeschaltet wird, dann ist das Ergebnis einer Suche nicht mehr direkt sichtbar. Allerdings kann man weiterhin mit der Tastenkombination SHIFT F7 die Fundstellen anspringen.
P Wenn die Anzeige von Suchtreffern eingeschaltet ist, kann man mit diesen Schalter wählen, ob das Programm die ganze Zeile markiert oder nur die exakten Fundstellen (also auch mehrere pro Zeile!)
(Z) Markierungsmodus aktivieren/beenden
Tasten, die eingeklammert sind, bedeuten, daß die entsprechende Funktion nicht implementiert oder freigeschaltet ist.

Inhaltsverzeichnis


Bildschirmmodus ändern

Wenn man den Videomodus ändert, wird der Modus, der bei Programmbeginn aktiv war, wieder hergestellt sobald das Programm normal verlassen wird. Sollte es zu Problemen kommen, durch die das Programm abstürzt (etwa durch Bugs) kann man sich auf der Commandline mit folgenden Befehlen behelfen, um einen bestimmten Videomode wieder zu aktivieren: mode cox,y

Beispiel:
80 Spalten 25 Zeilen: mode CO80,25
90 Spalten 30 Zeilen: mode CO90,30

Inhaltsverzeichnis


Text suchen

Die Textsuche funktioniert nur im Ascii-Modus. Sobald die Suche gestartet wurde und der Suchbegriff eingegeben wurde, beginnt das Programm die Suche in einem eigenen Thread.
Die Suche kann momentan nicht abgebrochen werden und es wird immer der gesamte Text durchsucht. Dabei wird der aktuelle Fortgang der Suche in der Statuszeile eingeblendet. Die Prozentzahl bedeutet dabei, wieviel vom Text bereits durchsucht worden ist. Sobald der gesamte Text bearbeitet worden ist, werden alle Zeilen, die den Suchbegriff enthalten, in einer besonderen Farbe dargestellt (alternativ können auch nur die Fundsellen farbig anzeigt werden).
Das Suchprogramm zeigt nach Beendigung des Suchvorgangs an, wieviel Treffer es insgesamt gab. Dies wird in der Mitte der Statuszeile eingeblendet.
Inhaltsverzeichnis


nächste Fundstelle

Mit dieser Funktion kann man die verschiedenen Fundstellen anspringen. Dabei wird immer zur nächsten Fundstelle gesprungen und diese wird dann in der 1. Bildschirmzeile angezeigt.
Inhaltsverzeichnis


noch zu erledigen ...

Folgenden Punkte sind noch auf meiner TODO-Liste, bis zur Release V1.0 erfüllt sein sollten:

Es können jederzeit Verbesserungsvorschläge an den Programmierer gerichtet werden.
Inhaltsverzeichnis


Übersetzung...

Alle Texte, welches das Programm ausgibt, werden aus einem OS/2 MSG-File geholt. Damit ist es sehr leicht das Programm in eine andere Sprache zu übersetzen, da man einfach nur die Texte aus der Datei less.txt übersetzen muß.

Sollte jemand für seine Sprache mir eine übersetzte Datei zusenden und sich auch bereit erklären, diese ggf. weiterzupflegen, werde ich diese Datei in das Projekt aufnehmen (dabei schließe ich auch exotische Sprachen wie Plattdeutsch oder Urhessisch ausdrücklich nicht aus :-) ). Damit wird das Programm dann automatisch mehrsprachig (man muß nur die richtige less.msg für seine jeweilige Sprache haben).

Momentan existieren folgende Sprachversionen:

Sprache Gepflegt von
deutsch Clemens Benden

Bei Teppfihlern ;) bitte an den entsprechenden Autor wenden...


Inhaltsverzeichnis


Ever onward OS/2!
Clemens Benden