/* * Because it is painfully slow in python... * * Takes yenc stuff from a file and dumps the decoded * stuff to stdout. If no file is given it reads from stdin. * All headers should be stripped (including =y ones). */ #include #include #include int main(int argc, char **argv) { int c; FILE *f_in; if (argc < 2) { f_in = stdin; } else { f_in = fopen(argv[1], "r"); if (f_in == NULL) { fprintf(stderr, "Error. Cannot open input file '%s'\n", argv[1]); fprintf(stderr, "I accept yenc body (with headers stripped) by stdin or as a file. Output to stdout.\n"); exit(0); } } while ((c = fgetc(f_in)) != EOF) { switch (c) { case '\n': continue; case '\r': continue; case '=': /* Escaped character */ if ((c = fgetc(f_in))==EOF) break; else c = c-106; break; default: c = c-42; break; } fputc((unsigned char) c, stdout); } fflush(stdout); return 0; }