From: Jeff Schriebman Date: Sun, 27 Nov 1977 02:13:58 +0000 (-0800) Subject: BSD 1 development X-Git-Tag: BSD-1~166 X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/commitdiff_plain/cfa03d93bf689d0d62362fd99989416dc1397b3c BSD 1 development Work on file s6/colrm.c Synthesized-from: 1bsd --- diff --git a/s6/colrm.c b/s6/colrm.c new file mode 100644 index 0000000000..0754555df6 --- /dev/null +++ b/s6/colrm.c @@ -0,0 +1,84 @@ +/* +COLRM removes unwanted columns from a file + Jeff Schriebman UC Berkeley 11-74 +*/ + +struct buf { + int fildes; + int nleft; + char *nextp; + char buffer[512]; +} buff[2]; + +main(argc,argv) +char **argv; +{ + int first; + register ct,last; + register char c; + struct buf *ptrp,*ptrg; + + ptrp = &buff[0]; + ptrg = &buff[1]; + ptrp->fildes = 1; + ptrg->fildes = 0; + ptrp->nleft = 0; + ptrg->nleft = 0; + ptrp->nextp = ptrp->buffer; + ptrg->nextp = ptrg->buffer; + first = 20000; + last = -1; + if (argc>1) { + first = getn(*++argv); + last = 20000; + } + if (argc>2) + last = getn(*++argv); + +start: + ct = 0; +loop1: + if ((c=getc(ptrg))<0) + goto fin; + ct++; + if (c=='\n') { + putc(c,ptrp); + goto start; + } + if (ct0) { + putc(c,ptrp); + if (c=='\n') + goto start; + } +fin: + fflush(ptrp); +} + +getn(ap) +char *ap; +{ + register int n,c; + register char *p; + + p = ap; + n = 0; + while ((c = *p++) >= '0' && c <= '9') + n = n*10 + c - '0'; + return(n); +}