|
|
1.1 ! root 1: /* remove formatting information from collins thesaurus entries */ ! 2: #include <stdio.h> ! 3: #include "/usr/jerq/include/jioctl.h" ! 4: ! 5: int linesize = 65; ! 6: struct winsize winsize; ! 7: ! 8: main() ! 9: { ! 10: int c, d, n; ! 11: if(ioctl(1,JWINSIZE,&winsize)==0) ! 12: linesize = winsize.bytesx; ! 13: for(;;) { ! 14: c = getchar(); ! 15: switch(c) { ! 16: case EOF: ! 17: return(0); ! 18: case '*': ! 19: c = getchar(); ! 20: if(c=='S') { ! 21: put('('); ! 22: put(getchar()); ! 23: put(')'); ! 24: } ! 25: break; ! 26: case '#': ! 27: c = getchar(); ! 28: switch(getchar()) { ! 29: case '1': put('\''); ! 30: case '2': put('`'); ! 31: case '3': put('^'); ! 32: case '4': put('"'); ! 33: case '5': put(','); ! 34: } ! 35: put('\b'); ! 36: put(c); ! 37: break; ! 38: case '+': ! 39: case '<': ! 40: break; ! 41: default: ! 42: put(c); ! 43: } ! 44: } ! 45: } ! 46: ! 47: char word[50]; ! 48: int linelen, wordlen; ! 49: ! 50: put(c) ! 51: int c; ! 52: { ! 53: word[wordlen++] = c; ! 54: switch(c){ ! 55: case '\b': ! 56: wordlen -= 2; ! 57: break; ! 58: case '-': ! 59: case ' ': ! 60: putword(); ! 61: break; ! 62: case '\n': ! 63: putword(); ! 64: newline(); ! 65: break; ! 66: } ! 67: } ! 68: ! 69: newline() ! 70: { ! 71: putchar('\n'); ! 72: linelen = 0; ! 73: } ! 74: ! 75: putword() ! 76: { ! 77: word[wordlen] = 0; ! 78: if(linelen+wordlen > linesize-2) ! 79: newline(); ! 80: printf("%s", word); ! 81: linelen += wordlen; ! 82: wordlen = 0; ! 83: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.