/*
 * test.c
 *
 * A quick and dirty test for text class
 *
 * Pass <filename> as an argument to dump file to console.
 *
 * $Id :$
 * $Log:$
 *
 */


#include "defs.h"
#include "lines.h"
#include "text.h"
#include "memory.h"
#include "errors.h"
#include <dos/dos.h>
#include <proto/dos.h>


int
main( int argc, char **argv )
{

	ERROR_TYPE err = NULL;

	if( argc > 1 )
	{
		BPTR file;

		/* open file */
		if( file = Open( argv[1], MODE_OLDFILE ) )
		{
			LONG file_length;
			APTR file_buf;

			/* find file size */
			Seek( file, 0L, OFFSET_END );
			file_length = Seek( file, 0L, OFFSET_BEGINNING );

			Printf( "size: %ld\n", file_length );
			/* allocate buffer */
			if( file_buf = ( Memory_Alloc( file_length ) ) )
			{
				if( Read( file, file_buf, file_length ) == file_length )
				{

					/* dump it to the console */
					TEXT_PTR t;
					LINE_PTR l;

					t = Text_New( file_buf, &err );

					/* walk this list */
					for( l = Text_GetTopLine( t ); l; l = Text_GetNextLine( t, l ) )
					{
						Line_FPuts( Output(), l );
					}

				}

				/* done with buffer */
				Memory_Free( file_buf, file_length );
			}

			/* done with file */
			Close( file );
		}
		else
			MyExit( "Couldn't open file '%s'", argv[1] );

	}

	MyExit( NULL );
}

