// SPDX-License-Identifier: GPL-2.0 /* * Generate devlist.h from the Zorro ID file. * * (c) 2000 Geert Uytterhoeven <geert@linux-m68k.org> * * Based on the PCI version: * * (c) 1999--2000 Martin Mares <mj@ucw.cz>
*/
while (fgets(line, sizeof(line)-1, stdin)) {
lino++; if ((c = strchr(line, '\n')))
*c = 0; if (!line[0] || line[0] == '#') continue; if (line[0] == '\t') { switch (mode) { case 1: if (strlen(line) > 5 && line[5] == ' ') {
c = line + 5; while (*c == ' ')
*c++ = 0; if (manuf_len + strlen(c) + 1 > MAX_NAME_SIZE) { /* Too long, try cutting off long description */
bra = strchr(c, '['); if (bra && bra > c && bra[-1] == ' ')
bra[-1] = 0; if (manuf_len + strlen(c) + 1 > MAX_NAME_SIZE) {
fprintf(stderr, "Line %d: Product name too long\n", lino); return 1;
}
}
fprintf(devf, "\tPRODUCT(%s,%s,\"", manuf, line+1);
pq(devf, c);
fputs("\")\n", devf);
} elsegoto err; break; default: goto err;
}
} elseif (strlen(line) > 4 && line[4] == ' ') {
c = line + 4; while (*c == ' ')
*c++ = 0; if (manufs)
fputs("ENDMANUF()\n\n", devf);
manufs++;
strcpy(manuf, line);
manuf_len = strlen(c); if (manuf_len + 24 > MAX_NAME_SIZE) {
fprintf(stderr, "Line %d: manufacturer name too long\n", lino); return 1;
}
fprintf(devf, "MANUF(%s,\"", manuf);
pq(devf, c);
fputs("\")\n", devf);
mode = 1;
} else {
err:
fprintf(stderr, "Line %d: Syntax error in mode %d: %s\n", lino, mode, line); return 1;
}
}
fputs("ENDMANUF()\n\
\n\ #undef MANUF\n\ #undef PRODUCT\n\ #undef ENDMANUF\n", devf);
fclose(devf);
return 0;
}
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.15Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.