|
|
1.1 ! root 1: static char *Sccsid = "@(#)colrm.c 4.3 (Berkeley) 2/13/82"; ! 2: #include <stdio.h> ! 3: /* ! 4: COLRM removes unwanted columns from a file ! 5: Jeff Schriebman UC Berkeley 11-74 ! 6: */ ! 7: ! 8: ! 9: main(argc,argv) ! 10: char **argv; ! 11: { ! 12: int first; ! 13: register ct,last; ! 14: register char c; ! 15: char buffer[BUFSIZ]; ! 16: ! 17: setbuf(stdout, buffer); ! 18: first = 20000; ! 19: last = -1; ! 20: if (argc>1) { ! 21: first = getn(*++argv); ! 22: last = 20000; ! 23: } ! 24: if (argc>2) ! 25: last = getn(*++argv); ! 26: ! 27: start: ! 28: ct = 0; ! 29: loop1: ! 30: c = getc(stdin); ! 31: if (feof(stdin)) ! 32: goto fin; ! 33: if (c == '\t') ! 34: ct = (ct + 8) &~ 7; ! 35: else if (c == '\b') ! 36: ct = ct ? ct - 1 : 0; ! 37: else ! 38: ct++; ! 39: if (c=='\n') { ! 40: putc(c,stdout); ! 41: goto start; ! 42: } ! 43: if (ct<first) { ! 44: putc(c,stdout); ! 45: goto loop1; ! 46: } ! 47: ! 48: /* Loop getting rid of characters */ ! 49: for (;ct<last;ct++) { ! 50: c = getc(stdin); ! 51: if (feof(stdin)) ! 52: goto fin; ! 53: if (c=='\n') { ! 54: putc(c,stdout); ! 55: goto start; ! 56: } ! 57: } ! 58: ! 59: /* Output last of the line */ ! 60: for (;;) { ! 61: c = getc(stdin); ! 62: if (feof(stdin)) ! 63: break; ! 64: putc(c,stdout); ! 65: if (c=='\n') ! 66: goto start; ! 67: } ! 68: fin: ! 69: fflush(stdout); ! 70: } ! 71: ! 72: getn(ap) ! 73: char *ap; ! 74: { ! 75: register int n,c; ! 76: register char *p; ! 77: ! 78: p = ap; ! 79: n = 0; ! 80: while ((c = *p++) >= '0' && c <= '9') ! 81: n = n*10 + c - '0'; ! 82: return(n); ! 83: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.