V10/cmd/dict/colthread.c

Compare this file to the similar file:
Show the results in this format:

/* remove formatting information from collins thesaurus entries */
#include <stdio.h>
#include "/usr/jerq/include/jioctl.h"

int linesize = 65;
struct winsize winsize;

main()
{
	int c, d, n;
	if(ioctl(1,JWINSIZE,&winsize)==0)
		linesize = winsize.bytesx;
	for(;;) {
		c = getchar();
		switch(c) {
		case EOF:
			return(0);
		case '*':
			c = getchar();
			if(c=='S') {
				put('(');
				put(getchar());
				put(')');
			}
			break;
		case '#':
			c = getchar();
			switch(getchar()) {
			case '1': put('\'');
			case '2': put('`');
			case '3': put('^');
			case '4': put('"');
			case '5': put(',');
			}
			put('\b');
			put(c);
			break;
		case '+':
		case '<':
			break;
		default:
			put(c);
		}
	}
}

char word[50];
int linelen, wordlen;

put(c)
int c;
{
	word[wordlen++] = c;
	switch(c){
	case '\b':
		wordlen -= 2;
		break;
	case '-':
	case ' ':
		putword();
		break;
	case '\n':
		putword();
		newline();
		break;
	}
}

newline()
{
	putchar('\n');
	linelen = 0;
}

putword()
{
	word[wordlen] = 0;
	if(linelen+wordlen > linesize-2)
		newline();
	printf("%s", word);
	linelen += wordlen;
	wordlen = 0;
}