BSD 3 development
[unix-history] / usr / src / cmd / colrm.c
CommitLineData
14880b95
JS
1#include <stdio.h>
2/*
3COLRM removes unwanted columns from a file
4 Jeff Schriebman UC Berkeley 11-74
5*/
6
7
8main(argc,argv)
9char **argv;
10{
11 int first;
12 register ct,last;
13 register char c;
14 char buffer[512];
15
16 setbuf(stdout, buffer);
17 first = 20000;
18 last = -1;
19 if (argc>1) {
20 first = getn(*++argv);
21 last = 20000;
22 }
23 if (argc>2)
24 last = getn(*++argv);
25
26start:
27 ct = 0;
28loop1:
29 if ((c=getc(stdin))<0)
30 goto fin;
31 ct++;
32 if (c=='\n') {
33 putc(c,stdout);
34 goto start;
35 }
36 if (ct<first) {
37 putc(c,stdout);
38 goto loop1;
39 }
40
41/* Loop getting rid of characters */
42 for (;ct<last;ct++) {
43 if ((c=getc(stdin))<0)
44 goto fin;
45 if (c=='\n') {
46 putc(c,stdout);
47 goto start;
48 }
49 }
50
51/* Output last of the line */
52 while ((c=getc(stdin))>0) {
53 putc(c,stdout);
54 if (c=='\n')
55 goto start;
56 }
57fin:
58 fflush(stdout);
59}
60
61getn(ap)
62char *ap;
63{
64 register int n,c;
65 register char *p;
66
67 p = ap;
68 n = 0;
69 while ((c = *p++) >= '0' && c <= '9')
70 n = n*10 + c - '0';
71 return(n);
72}