
#include <utility/tagitem.h>
#include <string.h>

#include <clib/asl_protos.h>
#include <clib/dos_protos.h>

char drawername[77];
char filename[33];

struct TagItem sourcetags[] = {
{ ASLFR_TitleText, (ULONG)&"Select clients" },
{ ASLFR_InitialDrawer, (ULONG)drawername },
{ ASLFR_InitialFile, (ULONG)filename },
{ ASLFR_Flags1, FRF_DOMULTISELECT },
{ ASLFR_InitialHeight, 210L },
{ ASLFR_RejectIcons, TRUE },
{ TAG_END, NULL } };

extern void AddClient( char * );
extern void DetachGadgets( void );
extern void AttachGadgets( void );

void AskFiles( void )
{
struct FileRequester *request;
UWORD x;
struct WBArg *asl_args;

if ( request = (struct FileRequester *)AllocAslRequest( ASL_FileRequest, sourcetags ) )
	{
	strcpy( filename, FilePart(filename) );
	if ( AslRequest( request, sourcetags ) )
		{
		DetachGadgets();
		strcpy( filename, request->fr_Drawer );
		if ( filename[0] )
			{
			strcpy( drawername, filename );
			if ( filename[ strlen(filename)-1 ] != ':' && filename[ strlen(filename)-1 ] != '/' )
				strcat( filename, "/" );
			}

		if ( request->fr_NumArgs )
			{
			asl_args = request->fr_ArgList;
			for ( x = 0; x < request->fr_NumArgs; x++ )
				{
				*(FilePart(filename)) = 0;
				strcat( FilePart(filename), asl_args[x].wa_Name );
				AddClient( filename );
				}
			}
		else
			{
			strcat( FilePart(filename), FilePart(request->fr_File) );
			AddClient( filename );
			}
		AttachGadgets();
		}
	FreeAslRequest( request );
	}
}

