/* kat.c - give a semi-short directory listing */ /* ABZ 04/03/1990 */ /* Usage: ls -l | kat */ /* Lists entries as */ /* file1 wr/r file2 wr/wr file3 wr/ */ /* */ #include main() { unsigned c; int atend=0; int dir,myR,myW,myE,groupR,groupW,groupE,otherR,otherW,otherE; int loop; int file; file=0; c=33; while (c>31) { /* First line */ c=getchar(); putchar(c); } c=getchar(); while (c != EOF) { dir=(c=='d'); myR=(getchar()=='r'); myW=(getchar()=='w'); myE=(getchar()=='x'); groupR=(getchar()=='r'); groupW=(getchar()=='w'); groupE=(getchar()=='x'); otherR=(getchar()=='r'); otherW=(getchar()=='w'); otherE=(getchar()=='x'); loop=0; while (loop<44) { c=getchar(); loop++; } loop=0; while (c>31) { c=getchar(); if (c>' ') putchar(c); loop++; } while (loop<16) { putchar(' '); loop++; } if (!dir) { if (myE) { putchar('E'); loop++; } else { if (myW) { putchar('W'); loop++; } if (myR) { putchar('R'); loop++; } } putchar('/'); loop++; if (otherE) { putchar('E'); loop++; } else { if (otherW) { putchar('W'); loop++; } if (otherR) { putchar('R'); loop++; } } } else { putchar('D'); loop++; putchar('/'); loop++; } file++; if (file > 2) { putchar('\n'); file=0; } else while (loop<24) { putchar(' '); loop++; } c=getchar(); } if (file>0) putchar('\n'); }