infocmp(1M) infocmp(1M)
NAME
infocmp - terminfo-Beschreibungen vergleichen oder ausdrucken
SYNTAX
infocmp [-d] [-c] [-n] [-I] [-L] [-C] [-r] [-u] [-s d|i|l|c] [-v] [-V]
[-1] [-w width] [-A directory] [-B directory] [termname ...]
BESCHREIBUNG
Mit infocmp können Sie einen binären terminfo-Eintrag mit anderen
terminfo-Einträgen vergleichen, eine terminfo-Beschreibung neu schrei-
ben und dabei das Feld use= verwenden oder eine terminfo-Beschreibung
aus der Binärdatei (term) in verschiedenen Formaten ausgeben. In allen
Fällen werden zuerst die Booleschen Felder ausgegeben, dann die nume-
rischen Felder und dann die Felder mit Zeichenketten.
Standardoptionen
Sind keine Optionen angegeben und ist höchstens ein Wert unter
termname angegeben, wird die Option -I benutzt. Sind mehrere Werte
unter termname angegeben, wird die Option -d verwendet.
Vergleichsoptionen [-d] [-c] [-n]
infocmp vergleicht die terminfo-Beschreibung des ersten Terminals
termname mit jeder einzelnen Beschreibung der Einträge für die
termname-Werte der anderen Terminals. Ist eine Eigenschaft nur für
eines der Terminals definiert, hängt der zurückgegebene Wert vom Typ
der Eigenschaft ab: bei Booleschen Variablen wird F, bei ganzzahligen
Variablen -1 und bei Zeichenkettenvariablen NULL zurückgegeben.
-d Erstellt eine Liste aller Eigenschaften, in denen sich zwei
Einträge unterscheiden. Diese Option ist nützlich, um die
Unterschiede zwischen zwei Einträgen aufzuzeigen, die etwa von
verschiedenen Personen für dasselbe oder für ähnliche Termi-
nals erstellt wurden.
-c Erstellt eine Liste aller Eigenschaften, die bei zwei Einträ-
gen gleich sind. Eigenschaften, die nicht definiert sind, wer-
den dabei nicht berücksichtigt. Mit dieser Option läßt sich
schnell prüfen, ob es sinnvoll ist, die Option -u anzugeben.
-n Erstellt eine Liste aller Eigenschaften, die keiner der beiden
Einträge enthält. Sind keine Werte für termname angegeben,
wird die Umgebungsvariable TERM für die beiden termname-Werte
benutzt. Mit dieser Option läßt sich schnell prüfen, ob bei
einer Beschreibung etwas vergessen wurde.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
infocmp(1M) infocmp(1M)
Optionen für Quellenlistings [-I] [-L] [-C] [-r]
Die Optionen -I, -L und -C erzeugen ein Quellenlisting für jedes ange-
gebene Terminal.
-I Verwendet die terminfo-Namen
-L Verwendet den Namen der C-Variablen vom Typ long, der in
<term.h> aufgelistet wird
-C Verwendet die termcap-Namen
-r Wird -C verwendet, so werden alle Eigenschaften im termcap-
Format ausgegeben
Sind keine Werte für termname angegeben, wird als Terminalname die
Umgebungsvariable TERM benutzt.
Die von der Option -C erstellte Quelle kann direkt als termcap-Eintrag
verwendet werden, allerdings können nicht alle parametrisierten Zei-
chenketten in das termcap-Format umgewandelt werden. infocmp versucht,
die parametrisierten Daten weitestgehend umzuwandeln; alle nicht umge-
wandelten Daten werden in der Ausgabe markiert und als Kommentar
gekennzeichnet. Diese Elemente müssen dann "von Hand" weitereditiert
werden.
Alle Füllzeichen für Zeichenketten werden gesammelt und an den Anfang
der Zeichenkette gesetzt, wo termcap sie erwartet. Das obligatorische
Auffüllen mit Zeichen (Fülldaten mit abschließendem "/") wird aufgeho-
ben; es kann, muß aber nicht erfolgen.
Alle termcap-Variablen, die nicht mehr von terminfo unterstützt wer-
den, aber sich aus anderen terminfo-Variablen ableiten lassen, werden
ausgegeben. Nicht alle terminfo-Eigenschaften werden umgewandelt; nor-
malerweise werden nur diejenigen Variablen ausgegeben, die Teil von
termcap waren. Ist aber die Option -r angegeben, so fällt diese Ein-
schränkung weg, da damit alle Eigenschaften im termcap-Format ausgege-
ben werden.
Da die Füllzeichen am Anfang einer Eigenschaft gesammelt werden, wer-
den nicht alle Eigenschaften ausgegeben. Obligatorisches Auffüllen
wird nicht unterstützt. Da termcap-Zeichenketten weniger flexibel
sind, ist es nicht immer möglich, eine terminfo-Zeichensteuerung in
ein entsprechendes termcap-Format umzuwandeln. Wird die termcap-Datei
später in das terminfo-Format zurückverwandelt, so entsteht nicht
unbedingt wieder die ursprüngliche terminfo-Quelle.
Hier einige der gängigen terminfo-Parametersequenzen, die dazugehöri-
gen termcap-Entsprechungen und einige Terminaltypen, bei denen diese
Sequenzen häufig auftreten:
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
infocmp(1M) infocmp(1M)
terminfo termcap Entsprechende Terminals
________________________________________________________________
%p1%c %. adm
%p1%d %d hp, ANSI standard, vt100
%p1%'x'%+%c %+x concept
%i %i ANSI standard, vt100
%p1%?%'x'%>%t%p1%'y'%+%; %>xy concept
%p2 wird vor %p1 ausgegeben %r hp
Die Option Use= [-u]
-u Erstellt eine terminfo-Quellbeschreibung des ersten Terminals
termname relativ zu der Summe der Beschreibungen, welche durch
die Einträge für die anderen Terminals termnames vorgegeben
sind. Dies geschieht durch eine Analyse der Unterschiede zwi-
schen dem ersten termname und den anderen termname-Einträgen
und durch Erstellen einer Beschreibung für die anderen Termi-
nals mit den Feldern use=. Auf diese Weise ist es möglich,
generische terminfo-Einträge nachträglich in die Beschreibung
eines Terminals einzupassen. Es kann aber auch vorkommen, daß
zwei ähnliche Terminals mit je einer vollständigen Beschrei-
bung vorliegen. Der Grund dafür kann darin liegen, daß sie zu
verschiedenen Zeiten oder von zwei verschiedenen Personen
kodiert wurden. In einem derartigen Fall können Sie mit
infocmp herausfinden, wie Sie die eine Beschreibung abändern
müssen, damit sie relativ zu der anderen wird.
Existiert eine Eigenschaft im ersten termname nicht mehr und enthält
einer der anderen termname-Einträge einen Wert für diese Eigenschaft,
so wird sie zusammen mit einem @-Zeichen ausgegeben. Der Wert einer
Eigenschaft wird ausgegeben, wenn der Wert im ersten termname in kei-
nem der anderen termname-Einträge auftritt oder wenn der erste der
weiteren termname-Einträge mit dieser Eigenschaft einen anderen Wert
als im ersten termname angibt.
Die Reihenfolge der Einträge für die weiteren termname-Werte ist von
Bedeutung. Der terminfo-Übersetzer tic liest nämlich die Eigenschaften
von links nach rechts. Sind nun zwei use=-Einträge angegeben und ent-
halten diese unterschiedliche Einträge für dieselben Eigenschaften, so
entstehen auch unterschiedliche Ergebnisse, je nachdem, in welcher
Reihenfolge die Einträge angegeben sind. infocmp markiert alle derar-
tigen Inkonsistenzen bei den Einträgen für die weiteren termname-Werte.
Wird dagegen eine Eigenschaft nach einem use=-Eintrag, der diese
Eigenschaft enthält, angegeben, so wird die zweite Angabe ignoriert.
Wenn eine Beschreibung mit infocmp erneut erstellt wird, so läßt sich
damit recht gut überprüfen, ob in der ursprünglichen Quellbeschreibung
alles korrekt angegeben wurde.
Ein weiterer Fehler, der zwar nicht zu fehlerhaft übersetzten Dateien
führt, der den Übersetzungsvorgang jedoch verlangsamt, ist die Angabe
von überflüssigen use=-Feldern. infocmp markiert alle termname use=-
Felder, die nicht benötigt werden.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
infocmp(1M) infocmp(1M)
Andere Optionen [-s d|i|l|c] [-v] [-V] [-1] [-w width]
-s sortiert die Felder innerhalb der einzelnen Typen nach den
folgenden Argumenten:
d Die Felder werden in der Reihenfolge belassen, in der sie
in der terminfo-Datenbasis gespeichert sind.
i Sortieren nach dem terminfo-Namen.
l Sortieren nach dem Namen der C-Variablen vom Typ long.
c Sortieren nach dem termcap-Namen.
Ist die Option -s nicht angegeben, werden die ausgegebenen
Felder innerhalb der einzelnen Typen alphabetisch nach dem
terminfo-Namen ausgegeben. Ausgenommen hiervon sind die Optio-
nen -C und -L, bei denen nach dem termcap-Namen bzw. dem Namen
der C-Variablen vom Typ long sortiert wird.
-v Gibt Überwachungsdaten in die Standard-Fehlerausgabe aus, wäh-
rend das Programm läuft.
-V Gibt die Version des Programms in die Standard-Fehlerausgabe
aus und verläßt das Programm.
-1 Bewirkt, daß jedes Feld in einer eigenen Zeile ausgegeben
wird. Ist diese Option nicht angegeben, werden mehrere Felder
in einer Zeile ausgegeben. Eine Zeile kann bis zu 60 Zeichen
lang sein.
-w ändert die Ausgabe auf width Zeichen.
Wechseln der Datenbasen [-A directory] [-B directory]
Die Speicherposition der übersetzten terminfo-Datenbasis kann der
Umgebungsvariablen TERMINFO entnommen werden. Ist diese Variable nicht
definiert oder wird das Terminal nicht an der angegebenen Stelle
gefunden, wird die terminfo-Systemdatenbasis verwendet, die normaler-
weise in /usr/share/lib/terminfo gespeichert wird. Mit den Optionen -A
und -B können Sie diese Position außer Kraft setzen. Mit der Option -A
wird TERMINFO für den ersten termname-Eintrag festgelegt, mit der
Option -B wird TERMINFO für die weiteren termname-Einträge definiert.
Dadurch wird es möglich, Beschreibungen für ein Terminal mit demselben
Namen aber in zwei verschiedenen Datenbasen zu vergleichen. Dies ist
etwa dann hilfreich, wenn Sie Beschreibungen für dasselbe Terminal,
die von zwei verschiedenen Personen erzeugt wurden, vergleichen wol-
len.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
infocmp(1M) infocmp(1M)
Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert ist, wird
der Wert von LANG als Standardwert herangezogen. Ist auch LANG nicht
oder als leere Zeichenkette definiert, verhält sich das System so, als
wäre es nicht internationalisiert.
Hat eine der Variablen für die internationale Umgebung einen ungülti-
gen Wert, verhält sich das System so, als wäre keine Variable gesetzt.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
DATEIEN
/usr/share/lib/terminfo/?/*
Übersetzte Datenbasis für die Terminalbeschreibung.
SIEHE AUCH
captoinfo(1M), tic(1M), curses(3X), terminfo(4).
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98