|
|
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 'v':
59: putchar('\v');
60: continue;
61:
62: case '\\':
63: putchar('\\');
64: continue;
65:
66: case '0': case '1': case '2': case '3':
67: case '4': case '5': case '6': case '7':
68: wd = *cp&07;
69: j = 0;
70: while (*++cp>='0' && *cp<='7' && ++j<3){
71: wd <<= 3;
72: wd |= (*cp - '0');
73: }
74: putchar(wd);
75: --cp;
76: continue;
77:
78: default:
79: cp--;
80: }
81: putchar(*cp);
82: }
83: if (i < argc-1)
84: putchar(' ');
85: }
86: if (!nflg)
87: putchar('\n');
88: return 0;
89: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.