1: static char *sccsid = "@(#)cmp.c 4.2 (Berkeley) 4/29/83";
2: #include <stdio.h>
3: #include <ctype.h>
4:
5: FILE *file1,*file2;
6: int eflg;
7: int lflg = 1;
8: long line = 1;
9: long chr = 0;
10: long skip1;
11: long skip2;
12:
13: long otoi();
14:
15: main(argc, argv)
16: char **argv;
17: {
18: register c1, c2;
19: char *arg;
20:
21: if(argc < 3)
22: goto narg;
23: arg = argv[1];
24: if(arg[0] == '-' && arg[1] == 's') {
25: lflg--;
26: argv++;
27: argc--;
28: }
29: arg = argv[1];
30: if(arg[0] == '-' && arg[1] == 'l') {
31: lflg++;
32: argv++;
33: argc--;
34: }
35: if(argc < 3)
36: goto narg;
37: arg = argv[1];
38: if( arg[0]=='-' && arg[1]==0 )
39: file1 = stdin;
40: else if((file1 = fopen(arg, "r")) == NULL)
41: goto barg;
42: arg = argv[2];
43: if((file2 = fopen(arg, "r")) == NULL)
44: goto barg;
45: if (argc>3)
46: skip1 = otoi(argv[3]);
47: if (argc>4)
48: skip2 = otoi(argv[4]);
49: while (skip1) {
50: if ((c1 = getc(file1)) == EOF) {
51: arg = argv[1];
52: goto earg;
53: }
54: skip1--;
55: }
56: while (skip2) {
57: if ((c2 = getc(file2)) == EOF) {
58: arg = argv[2];
59: goto earg;
60: }
61: skip2--;
62: }
63:
64: loop:
65: chr++;
66: c1 = getc(file1);
67: c2 = getc(file2);
68: if(c1 == c2) {
69: if (c1 == '\n')
70: line++;
71: if(c1 == EOF) {
72: if(eflg)
73: exit(1);
74: exit(0);
75: }
76: goto loop;
77: }
78: if(lflg == 0)
79: exit(1);
80: if(c1 == EOF) {
81: arg = argv[1];
82: goto earg;
83: }
84: if(c2 == EOF)
85: goto earg;
86: if(lflg == 1) {
87: printf("%s %s differ: char %ld, line %ld\n", argv[1], arg,
88: chr, line);
89: exit(1);
90: }
91: eflg = 1;
92: printf("%6ld %3o %3o\n", chr, c1, c2);
93: goto loop;
94:
95: narg:
96: printf("cmp: arg count\n");
97: exit(2);
98:
99: barg:
100: if (lflg)
101: perror(arg);
102: exit(2);
103:
104: earg:
105: printf("cmp: EOF on %s\n", arg);
106: exit(1);
107: }
108:
109: long otoi(s)
110: char *s;
111: {
112: long v;
113: int base;
114:
115: v = 0;
116: base = 10;
117: if (*s == '0')
118: base = 8;
119: while(isdigit(*s))
120: v = v*base + *s++ - '0';
121: return(v);
122: }
Defined functions
main
defined in line
15;
never used
otoi
defined in line
109; used 3 times
Defined variables
chr
defined in line
9; used 3 times
eflg
defined in line
6; used 2 times
lflg
defined in line
7; used 5 times
line
defined in line
8; used 2 times
sccsid
defined in line
1;
never used
skip1
defined in line
10; used 3 times
skip2
defined in line
11; used 3 times