#else /* defined(unix) */
#endif /* defined(unix) */
#include "../general/general.h"
#include "../ctlr/function.h"
{ "0", "SHIFT_UPSHIFT", "SHIFT_ALT", "SHIFT_ALT|SHIFT_UPSHIFT" };
char *aidfile
= 0, *fcnfile
= 0;
dohits(aidfile
, fcnfile
); /* Set up "Hits" */
printf(" * Ascii to scancode conversion table. First\n");
printf(" * 128 bytes (0-127) correspond with actual Ascii\n");
printf(" * characters; the rest are functions from ctrl/function.h\n");
/* Build the ascii part of the table. */
for (Ph
= Hits
, scancode
= 0; Ph
<= Hits
+highestof(Hits
);
for (i
= 0; i
< 4; i
++) {
if (ph
->hit
[i
].ctlrfcn
== FCN_CHARACTER
) {
c
= Ph
->name
[i
][0]; /* "name" of this one */
tbl
[c
].shiftstate
= shiftof
[i
];
tbl
[c
].scancode
= scancode
;
/* Now, output the table */
for (Pt
= tbl
, asciicode
= 0; Pt
<= tbl
+highestof(tbl
); Pt
++, asciicode
++) {
if (isprint(asciicode
) && (asciicode
!= ' ')) {
fprintf(stderr
, "Unable to produce scancode sequence for");
fprintf(stderr
, " ASCII character [%c]!\n", asciicode
);
printf("\t{ 0, 0, undefined, 0 },\t");
printf("\t{ 0x%02x, %s, FCN_CHARACTER, 0 },",
Pt
->scancode
, Pt
->shiftstate
);
printf("\t/* 0x%x", asciicode
);
if (isprint(asciicode
)) {
printf(" [%c]", asciicode
);
for (attable
= &table
[0]; attable
<= &table
[highestof(table
)]; attable
++) {
for (this = *attable
; this; this = this->next
) {
for (i
= 0; i
< 4; i
++) {
if ((Ph
->name
[i
] != 0) &&
(Ph
->name
[i
][0] == this->name
[0]) &&
(strcmp(Ph
->name
[i
], this->name
) == 0)) {
printf("\t{ 0x%02x, %s, ",
if (memcmp("AID_", this->name
, 4) == 0) { /* AID key */
printf("%s, ", Ph
->name
[i
]);
if (memcmp("PF", this->name
+4, 2) == 0) {
printf("\"PFK%s\" },\n", Ph
->name
[i
]+4+2);
printf("\"%s\" },\n", Ph
->name
[i
]+4);