LEXGROG(1) Dienstprogramme fur Handbuchseiten LEXGROG(1) BEZEICHNUNG lexgrog - wertet die Kopfzeilen-Information von Handbuchseiten aus UBERSICHT lexgrog [-m|-c] [-dfw?V] [-E Kodierung] Datei ... BESCHREIBUNG lexgrog ist eine Lex-Implementierung des traditionellen Dienstprogramms >>groff guess<< fur 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 fur die Seite erforderlichen Vorverarbeitungs-Filter fur die Erzeugung von Nroff/Troff oder aber beides. Wenn seine Eingabe schlecht formatiert ist, wird lexgrog >>parse failed<< ausgeben. Das konnen externe Programme nutzen, die Handbuchseiten auf Fehlerfreiheit prufen. 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 gewahlt, greift diese Voreinstellung. -c, --cat Interpretiert die Eingabe als vorformatierte Handbuchseiten (>>Cat-Seiten<<). Die Optionen --man und --cat schliessen 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 gewahlt wurde. -f, --filters Zeigt die Liste der erforderlichen Filter fur 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 Programmausfuhrung 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 system reference manuals" $ lexgrog -fw man.1 man.1 (t): "man - an interface to the system 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, fruher genutzten Formaten befassen muss, kann er ab und zu die gewunschte Information nicht entnehmen. Wenn Sie die den traditionellen Makrosatz >>man<< verwenden, wird ein gultiger BEZEICHNUNGs-Abschnitt ungefahr so aussehen: .SH BEZEICHNUNG foo \- Programm, das etwas erledigt Einige Handbuchanzeigeprogramme erfordern das `\-q genau in dieser Reihenfolge. mandb ist toleranter, aber fur die Kompatibilitat mit anderen Systemen ist es dennoch eine gute Idee, den Backslash (umgekehrten Schragstrich) beizubehalten. Auf der linken Seite konnen 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 uber 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 \- Programm, das nichts tut (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 gultiger BEZEICHNUNGs-Abschnitt ungefahr das folgende Aussehen: .Sh BEZEICHNUNG .Nm foo .Nd Programm, das etwas erledigt Es gibt mehrere haufige Grunde dafur, dass die von Whatis durchgefuhrte Auswertung fehlschlagt. Manchmal ersetzen Autoren von Handbuchseiten `.SH BEZEICHNUNG' durch `.SH MEINPROGRAMM'. Dann kann mandb den Abschnitt nicht finden, aus dem es die benotigten 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 ahnliche Schreibweisen akzeptiert werden. SIEHE AUCH apropos(1), man(1), whatis(1), mandb(8) ANMERKUNGEN Lexgrog versucht, Dateien mit >>.so<<-Anfragen auszuwerten, hat aber nur dann Aussicht auf Erfolg, wenn die Seiten ordnungsgemass in einer Handbuchseiten-Hierarchie installiert sind. AUTOR Der von Lexgrog verwendete Code fur die Auswertung von Handbuchseiten wurde geschrieben von: Wilf. (G.Wilford@ee.surrey.ac.uk). Fabrizio Polacco (fpolacco@debian.org). Colin Watson (cjwatson@debian.org). Colin Watson hat sowohl das aktuelle Befehlszeilen-Frontend als auch die Handbuchseite geschrieben. FEHLER https://gitlab.com/man-db/man-db/-/issues https://savannah.nongnu.org/bugs/?group=man-db 2.12.1 2024-04-05 LEXGROG(1)