Ok, ich habe es selbst herausgefunden.
Mit dem c-Skript hier, und ein wenig modifiziert, bekam ich, was ich brauchte.
Die Modifikation, die teilnahm, war folgende: Weil ich ???
vor jedem Fehler unterstrichen wollte, änderte ich die Schleife in Zeile 107 zum Drucken ??? bevor Sie den Rest des Fehlers durchlaufen. Dies war wie folgt:
if (buffer[0] == 27) dontcol = 1; if (buffer[0] == '\n') dontcol = 0; if (!dontcol) fputs(begstr, stdout); fputs("\0033[4m??? \033[0m", stdout); putchar(buffer[0]); if (!dontcol) fputs(endstr, stdout); for (i = 1; i < n; i++) { if (buffer[i] == 27) dontcol = 1; if (buffer[i] == '\n') dontcol = 0; if (!dontcol) fputs(begstr, stdout); putchar(buffer[i]); if (!dontcol) fputs(endstr, stdout); }