|
|
1.1 ! root 1: #include <stdio.h> ! 2: ! 3: main(argc, argv) ! 4: char **argv; ! 5: { ! 6: register char *cp; ! 7: register int i, wd; ! 8: int j; ! 9: int nflg = 0; ! 10: int escflg = 0; ! 11: ! 12: while (argc > 1) { ! 13: if (strcmp(argv[1], "-n")==0) { ! 14: nflg++; ! 15: argc--; ! 16: argv++; ! 17: } else if (strcmp(argv[1], "-e")==0) { ! 18: escflg++; ! 19: argc--; ! 20: argv++; ! 21: } else if (strcmp(argv[1], "-ne")==0 || ! 22: strcmp(argv[1], "-en")==0) { ! 23: escflg++; ! 24: nflg++; ! 25: argc--; ! 26: argv++; ! 27: break; ! 28: } else ! 29: break; ! 30: } ! 31: for (i = 1; i < argc; i++) { ! 32: for (cp = argv[i]; *cp; cp++) { ! 33: if (*cp == '\\' && escflg) ! 34: switch (*++cp) { ! 35: case 'b': ! 36: putchar('\b'); ! 37: continue; ! 38: ! 39: case 'c': ! 40: return 0; ! 41: ! 42: case 'f': ! 43: putchar('\f'); ! 44: continue; ! 45: ! 46: case 'n': ! 47: putchar('\n'); ! 48: continue; ! 49: ! 50: case 'r': ! 51: putchar('\r'); ! 52: continue; ! 53: ! 54: case 't': ! 55: putchar('\t'); ! 56: continue; ! 57: ! 58: case '\\': ! 59: putchar('\\'); ! 60: continue; ! 61: ! 62: case '0': case '1': case '2': case '3': ! 63: case '4': case '5': case '6': case '7': ! 64: wd = *cp&07; ! 65: j = 0; ! 66: while (*++cp>='0' && *cp<='7' && ++j<3){ ! 67: wd <<= 3; ! 68: wd |= (*cp - '0'); ! 69: } ! 70: putchar(wd); ! 71: --cp; ! 72: continue; ! 73: ! 74: default: ! 75: cp--; ! 76: } ! 77: putchar(*cp); ! 78: } ! 79: if (i < argc-1) ! 80: putchar(' '); ! 81: } ! 82: if (!nflg) ! 83: putchar('\n'); ! 84: return 0; ! 85: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.