|
|
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.