lexgrog(1) wertet die Kopfzeilen-Information von Handbuchseiten aus

ÜBERSICHT

lexgrog [-m|-c] [-dfw?V] [-E Kodierung] Datei ...

BESCHREIBUNG

lexgrog ist eine Lex-Implementierung des traditionellen Dienstprogramms "groff guess " für die Auswertung von Handbuch-Quelldateien oder vorformatierten "Cat"-Seiten. Es liest die Liste der Dateien in seiner Befehlszeile. Seine Ausgabe sind entweder die Namen und Beschreibungen in der Form, die apropos und whatis verwenden oder die Liste der für die Seite erforderlichen Vorverarbeitungs-Filter für die Erzeugung von Nroff/Troff oder aber beides.

Wenn seine Eingabe schlecht formatiert ist, wird lexgrog"parse failed" ausgeben. Das können externe Programme nutzen, die Handbuchseiten auf Fehlerfreiheit prüfen. Wenn einer der Eingabedateien von lexgrog "" ist, wird das Programm von der Standardeingabe lesen. Ist eine Eingabedatei komprimiert, wird sie automatisch dekomprimiert.

OPTIONEN

-d, --debug
Ausgabe von Debug-Informationen
-m, --man
Interpretiert die Eingabe als Handbuchseiten-Quelltext. Sind weder --man noch --cat gewählt, greift diese Voreinstellung.
-c, --cat
Interpretiert die Eingabe als vorformatierte Handbuchseiten ("Cat-Seiten"). Die Optionen --man und --cat schließen sich gegenseitig aus.
-w, --whatis
Zeigt den Namen und die Beschreibung aus dem Kopf der Handbuchseite so an, wie sie von apropos und whatis verwendet werden. Das ist die Voreinstellung, wenn weder --whatis noch --filters gewählt wurde.
-f, --filters
Zeigt die Liste der erforderlichen Filter für die Aufbereitung der Handbuchseite vor der Formatierung mit Nroff oder Troff.
-E Kodierung, --encoding Kodierung
Statt des vermuteten Zeichensatzes der Seite die Kodierung verwenden.
-?, --help
Hilfetext anzeigen und beenden
--usage
zeigt eine kurze Anwendungszusammenfassung an und beendet das Programm.
-V, --version
Versionsinformation anzeigen und beenden

EXIT-STATUS

0
erfolgreiche Programmausführung
1
Fehler beim Aufruf
2
Lexgrog konnte eine oder mehrere seiner Eingabedateien nicht auswerten.

BEISPIELE

  $ lexgrog man.1
  man.1: "man - an interface to the on-line reference manuals"
  $ lexgrog -fw man.1
  man.1 (t): "man - an interface to the on-line reference manuals"
  $ lexgrog -c whatis.cat1
  whatis.cat1: "whatis - display manual page descriptions"
  $ lexgrog broken.1
  broken.1: parse failed

WAS BEDEUTET PARSEN

Die Programme mandb und lexgrog verwenden den gleichen Code. mandb durchsucht den Abschnitt BEZEICHNUNG am Anfang jeder Handbuchseite nach den Namen und den jeweils beschriebenen Funktionen. Obwohl der Parser (das Auswerteprogramm) ziemlich tolerant ist, weil er sich mit etlichen verschiedenen, früher genutzten Formaten befassen muss, kann er ab und zu die gewünschte Information nicht entnehmen.

Wenn Sie die den traditionellen Makrosatz »man« verwenden, wird ein gültiger BEZEICHNUNGs-Abschnitt ungefähr so aussehen:

.SH BEZEICHNUNG
foo \- Programm, das etwas erledigt

Einige Pager erfordern das '\-q genau in dieserReihenfolge. mandb ist toleranter, aber für die Kompatibilität mit anderen Systemen ist es dennoch eine gute Idee, den Backslash (umgekehrten Schrägstrich) beizubehalten.

Auf der linken Seite können verschiedene, durchs Kommas getrennte Namen stehen. Namen mit Leerzeichen werden ignoriert, um bestimmte »krankhafte« Verhaltensweisen bei schlecht formatierten BEZEICHNUNGs-Abschnitten zu vermeiden. Der Text auf der rechten Seite unterliegt keinen Formvorschriften und kann sich über mehrere Zeilen erstrecken. Wenn in der Handbuchseite mehrere Merkmale mit unterschiedlichen Beschreibungen dokumentiert werden, wird das folgende Format verwendet:

.SH BEZEICHNUNG
foo, bar \- Programme, die etwas erledigen
.br
baz \- Programme, die in der Hängematte liegen

(Anstelle des Zeilenvorschub-Makros .br kann auch ein Makro verwendet werden, das einen neuen Absatz beginnt, z.B. .PP.)

Wird der von BSD abgeleitete mdoc-Makrosatz verwendet, hat ein gültiger BEZEICHNUNGs-Abschnitt ungefähr das folgende Aussehen:

.Sh BEZEICHNUNG
.Nm foo
.Nd Programm, das etwas erledigt

Es gibt mehrere häufige Gründe dafür, dass die von Whatis durchgeführte Auswertung fehlschlägt. Manchmal ersetzen Autoren von Handbuchseiten '.SH BEZEICHNUNG' durch '.SH MEINPROGRAMM'. Dann kann mandb den Abschnitt nicht finden, aus dem es die benötigten Informationen entnehmen soll. Manchmal verfassen Autoren einen Abschnitt BEZEICHNUNG, aber platzieren dort anstelle von 'Name \- Beschreibung'. frei formatierten Text. Es sollten aber beliebige, dem oben Beschriebenen ähnliche Schreibweisen akzeptiert werden.

ANMERKUNGEN

Lexgrog versucht, Dateien mit ».so«-Anfragen auszuwerten, hat aber nur dann Aussicht auf Erfolg, wenn die Seiten ordnungsgemäß in einer Handbuchseiten-Hierarchie installiert sind.

AUTOR

Der von Lexgrog verwendete Code für die Auswertung von Handbuchseiten wurde geschrieben von:

Wilf. ([email protected]).Fabrizio Polacco ([email protected]).Colin Watson ([email protected]).

Colin Watson hat sowohl das aktuelle Befehlszeilen-Frontend als auch die Handbuchseite geschrieben.