#include <exec/types.h>
#include <exec/nodes.h>
#include <exec/lists.h>
#include <exec/libraries.h>
#include <exec/interrupts.h>
#include <exec/io.h>
#include <exec/memory.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <proto/dos.h>
#include <stdio.h>
#include <string.h>

void __regargs __chkabort(void);
void __regargs __chkabort(void){}
void chkabort(void) {}
/*int CXBRK() {return(0);}*/

void main(int argc,char *argv[])
{	long handle;
	char buffer[256],blank;
	int len,i,count,cr,lf,words;
	long bytes;

	for(i=1;i<argc;i++)
	{
		if(handle=Open(argv[i],MODE_OLDFILE))
		{
			cr=lf=words=bytes=0;
			blank=1;
			while((len=Read(handle,buffer,256))>0)
			{
				bytes+=len;
				for(count=0;count<len;count++)
				{
					switch(buffer[count])
					{
					case 0x0a:
						lf++;
						blank=1;
						break;
					case 0x0d:
						cr++;
						blank=1;
						break;
					case ' ':
					case '\t':
						blank=1;
						break;
					default:
						if (blank)
						{	blank=0;
							words++;
						}
					}
				}
			}
			Close(handle);
			if (cr>lf)	lf=cr;
			if (argc>2)	printf("--- %s ---\n",argv[i]);
			printf("Lines: %d\nWords: %d\nChars: %d\n",lf,words,bytes);
			if (argc>2)	printf("\n");
		}
		else
			printf("Can't open file '%s'\n",argv[i]);
	}
	if(argc==1)
		printf("Usage: 'wc filename'\n");
}
