mapchan(4) mapchan(4)
NAME
mapchan - Format von Abbildungstabellen für Terminals
BESCHREIBUNG
Der mapchan-Mechanismus ermöglicht eine Abbildung von ein- und ausge-
gebenen Zeichen auf Terminals. Auf der Eingabeseite können einzelne
Zeichen auf andere Zeichen abgebildet werden (1:1-Abbildung) sowie
Tot-Tasten- und Compose-Tastenfolgen definiert werden. Auf der Ausga-
beseite können einzelne Zeichen auf ein oder mehrere Zeichen abgebil-
det werden (1:N-Abbildung).
Eine (nicht leere) mapchan Abbildungstabelle besteht aus mehreren Tei-
len, wobei jeder der Teile mit einer Zeile beginnt, die das entspre-
chende Schlüsselwort enthält.
Der "input"-Teil beschreibt die Abbildungvorschrift für die Eingabe-
zeichen. Jede nichtleere Zeile in diesem Teil muß genau zwei Zeichen-
werte enthalten. Dabei gibt der erste Zeichenwert in der Zeile das
Zeichen an, welches auf den zweiten Zeichenwert abgebildet werden
soll.
Beispiel:
input # Abbildungvorschrift für Eingabezeichen
'a' 'b' # Das Zeichen 'a' wird auf 'b' abgebildet
Der "output"-Teil enthält die Abbildungvorschrift für die Ausgabezei-
chen. Der erste Zeichenwert jeder Zeile wird auf die Zeichenfolge
abgebildet, die durch die restlichen Zeichenwerte in der Zeile defi-
niert ist.
Beispiel:
output # Abbildungvorschrift für Ausgabezeichen
'a' 'm' 'n' 'o' # Das Zeichen 'a' wird auf die Zeichenfolge "mno"
# abgebildet
Der "compose"-Teil der Abbildungstabelle definiert die Compose-Tasten-
folgen. Die Kopfzeile dieses Teils muß neben dem Schlüsselwort compose
auch das Zeichen enthalten, welches als Compose-Taste definiert wird:
"compose Zeichen". Die Zeilen in diesem Teil müssen drei Zeichenwerte
enthalten: die ersten beiden entsprechen dem zweiten und dritten Zei-
chen der Compose-Tastenfolge und der dritte Zeichenwert ist das Zei-
chen, auf welches die Compose-Tastenfolge abgebildet wird.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
mapchan(4) mapchan(4)
Beispiel:
compose 'x' # Compose-Tastenfolgen und Compose-Taste 'x'
# definieren
'a' 'b' 'm' # Die Compose-Tastenfolge 'x' 'a' 'b' wird auf das
# Zeichen 'm' abgebildet.
Durch die "dead"-Teile der Abbildungstabelle werden die Tot-Tasten-
folgen beschrieben. Ähnlich wie bei dem "compose"-Teil muß die Kopf-
zeile eines "dead"-Teils neben dem Schlüsselwort dead auch die Tot-
Taste enthalten: "dead Zeichen". Die Zeilen in einem dead Teil müssen
zwei Zeichenwerte enthalten: der erste Zeichenwert entspricht dem
zweiten Zeichen der Tot-Tastenfolge und der zweite gibt das Zeichen
an, auf welches die Tot-Tastenfolge abgebildet wird. Für jede Tot-
Taste muß ein eigener "dead"-Teil definiert werden.
Beispiel:
dead 'y' # Tot-Tastenfolgen für die Tot-Taste 'y' definieren
'a' 'm' # Die Tot-Tastenfolge 'y' 'a' wird auf das Zeichen
# 'm' abgebildet.
Zusätzlich kann in einer Abbildungstabelle eine Zeile mit dem Schlüs-
selwort beep angegeben werden. Dieses Schlüsselwort bewirkt, daß bei
fehlerhaften Eingaben (z. B. nicht definierte Tot-Tasten- oder
Compose-Tastenfolgen) ein akustisches Signal (BEL) erzeugt wird.
Das Nummern-Zeichen (#) wird als Kommentarzeichen interpretiert. Alle
Zeichen zwischen dem Kommentarzeichen und dem Zeilenende werden igno-
riert.
Eine als leer definierte Abbildungstabelle besteht nur aus einer Zeile
mit dem Schlüsselwort null. Dieses Schlüsselwort darf mit keinem ande-
ren Schlüsselwort kombiniert werden.
Eine nicht-leere Abbildungstabelle muß mindestens einen "input"- und
einen "output"-Teil besitzen. Dennoch brauchen diese Teile keine
Abbildungsvorschriften zu enthalten.
Ein- und ausgegebene Zeichen, die auf sich selbst abgebildet werden,
müssen in der Abbildungstabelle nicht aufgeführt werden.
Die einzelnen Zeichen in einer Abbildungstabelle können auf unter-
schiedliche Weise spezifiziert werden. Folgende Darstellungen sind
erlaubt:
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
mapchan(4) mapchan(4)
'b' in Hochkommata eingeschlossenes Zeichen
98 dezimale Darstellung des Zeichencodes
0142 oktale Darstellung des Zeichencodes
0x62 hexadezimale Darstellung des Zeichencodes
'\142' in Hochkommata eingeschlossene Oktaldarstellung
'\x62' in Hochkommata eingeschlossene Hexadezimaldarstellung
Zusätzlich werden auch folgende Steuerzeichen erkannt:
'\n' Zeilenendezeichen
'\t' Tabulator
'\r' Wagenrücklauf
'\b' Backspace
Beispiel einer Abbildungstabelle:
beep # Bei einem Fehler ertönt ein akustisches Signal
input # Abbildungvorschrift für eingegebene Zeichen
'.' ',' # ein Punkt wird auf ein Komma abgebildet
dead '^' # Definition der Tot-Taste ^
' ' '^' # ^ gefolgt von einem Leerzeichen ergibt ^
'a' 0342 # ^ gefolgt von a ergibt das ISO 88591-1 Zeichen â
dead 047 # Definition der Tot-Taste '
' ' 047 # ' gefolgt von einem Leerzeichen ergibt '
'e' 0351 # ' gefolgt von e ergibt das ISO 88591-1 Zeichen é
compose 037 # Definition des Zeichens ^ (control underscore)
# als Compose-Taste
'c' ',' 0347 # die Zeichenfolge ^ c , ergibt das ISO 88591-1
# Zeichen ç
output # Abbildungvorschrift für ausgegebene Zeichen
'&' 'u' 'n' 'd' # Das Zeichen & wird auf die Zeichenkette "und"
# abgebildet (1:N-Abbildung)
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
mapchan(4) mapchan(4)
Standardmäßig befinden sich die mapchan-Abbildungstabellen in dem Ver-
zeichnis /usr/lib/mapchan.
Das Kommando mapchan führt bei der Verarbeitung einer Abbildungsta-
belle folgende Fehlerüberprüfungen durch:
- mehr als eine Compose-Taste definiert
- fehlender "input"- oder "output"-Teil
- mehr als ein "input"- oder "output"-Teil
- 1:N-Abbildung von Eingabezeichen
- Abbildung von Eingabezeichen auf das Zeichen NIL
- allgemeine Syntaxfehler
HINWEISE
Wird auf einem Terminal eine nicht sinnvolle Abbildungstabelle einge-
stellt, so ist im allgemeinen ein weiteres Arbeiten mit diesem Termi-
nal nicht möglich.
Eingegebene Zeichen durchlaufen auf jeden Fall die 1:1-Abbildung,
selbst wenn sie Teil einer Tot-Tasten- oder Compose-Tastenfolge sind.
Eingabezeichen dürfen nicht auf das NIL-Zeichen (0-Byte) abgebildet
werden. Eine Tot-Tasten- oder Compose-Tastenfolge kann aber ein NIL-
Zeichen erzeugen. Ebenso darf eine Zeichenfolge, auf die ein Ausgabe-
zeichen abgebildet wird, NIL-Zeichen enthalten.
Es können höchstens 255 Tot-Tasten- und Compose-Tastenfolgen definiert
werden. Außerdem dürfen alle Zeichenfolgen im "output"-Teil zusammen
nicht mehr als 255 Zeichen enthalten.
Das Flag ISTRIP [siehe stty(1)] sollte bei einem Terminal, auf dem
eine Abbildungstabelle eingestellt wurde, nicht gesetzt sein, da sonst
das achte Bit der Zeichen maskiert wird.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
mapchan(4) mapchan(4)
Für den Systemverwalter:
Für eine Abbildungstabelle eines Terminals wird im Betriebssystem ein
2048-Byte-Puffer benötigt. Wenn mehrere Terminals die gleiche Abbil-
dungstabelle verwenden, so ist nur ein Puffer erforderlich, da die
Terminals sich den Puffer teilen. Die maximale Anzahl von Puffern, die
für Abbildungstabellen verwendet werden, ist begrenzt. Diese Anzahl
kann vom Systemverwalter über den Systemparameter NEMAP [siehe
idtune(1M)] konfiguriert werden.
DATEIEN
/usr/lib/mapchan/*
SIEHE AUCH
stty(1), mapchan(1M), mapkey(1M), ascii(5), meta-ascii(5), keyboard(7)
[bei RM400], tty(7).
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98