/* uncview.c -- Filter Recovering Contrl-Codes Visualized by "cview/cviewe" */ #include #include #include int main(int argc, char *argv[]) { int c; FILE *fp; # ifdef O_BINARY setmode(1,O_BINARY); # endif if (argc == 1) { fp = stdin; # ifdef O_BINARY setmode(0,O_BINARY); # endif } else if ((fp=fopen(argv[1],"rb")) == NULL) { fprintf(stderr, "file %s not found\n", argv[1]); exit(1); } while ((c=getc(fp)) != EOF) { if (c < 0x20) continue; else if (c == '!') c = (getc(fp) | 0x80); else if (c == '\\') c = getc(fp); else if (c == '^') { c = getc(fp); if (c >= 0x60) c = ((c & 0x1f) | 0x80); else if (c >= '@') c = (c & 0x1f); else if (c == '?') c = 0x7f; else if (c == '#') c = 0x9f; else if (c == '$') c = 0xa0; else if (c == '/') c = 0xff; } putchar(c); } fclose(fp); fclose(stdout); return(0); }