|
|
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.