|
|
1.1 ! root 1: #include <stdio.h> ! 2: /* ! 3: COLRM removes unwanted columns from a file ! 4: Jeff Schriebman UC Berkeley 11-74 ! 5: */ ! 6: ! 7: ! 8: main(argc,argv) ! 9: char **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: ! 26: start: ! 27: ct = 0; ! 28: loop1: ! 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: } ! 57: fin: ! 58: fflush(stdout); ! 59: } ! 60: ! 61: getn(ap) ! 62: char *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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.