Umsetzung einer Druckercodepage in Phase 1

Während der ersten Phase der Codepageumsetzung wird eine temporäre Codepage erzeugt.

Im folgenden Beispiel wird eine stage-1 -Umsetzungstabelle generiert, um Codepunkte aus einer hypothetischen Codepage 123 in die temporäre Codepage umzusetzen.

#include <piostruct.h>
#include <fcntl.h>
/*** Table to Translate Code Points for Input Code Page ***/
/*** "123" to Code Points for the Intermediate Code Page    ***/
short table[256] = {
/* 00 (000) */ CP, CP, CP, CP,
.
.
.
/* FC (252) */ CP, SC, 126, CP };
/*** Write the Table to a File (Error Processing Not Shown) ***/
main ( ) {
int fildes;
int fmt_type = 1;
fildes = open("/usr/lib/lpd/pio/transl/123", O_CREAT | O_WRONLY,\
0664);
write(fildes, "PIOSTAGE1XLATE00", 16);
write(fildes, &fmt_type, sizeof(fmt_type));
write(fildes, table, sizeof(table));
return(0);
}

Die Angabe CP am Codepunkt 252 bedeutet, dass der Codepunkt unverändert kopiert werden soll. Das Zeichen SC am Codepunkt 253 bedeutet, dass das Zeichen nicht in der temporären Codepage definiert ist. Daher sollte stattdessen ein Ersatzzeichen gedruckt werden. 126 an Codepunkt 254 bedeutet, dass Codepunkt 254 in Codepunkt 126 umgesetzt werden soll.

Das Flag -X im Befehl qprt gibt den Namen der Codepage der Druckdatei an. Wenn dieser Wert 123 ist, liest das Formatierungsprogramm die Tabelle aus der Datei /usr/lib/lpd/pio/trans1/123 und verwendet sie für die Umsetzung von stage-1 .