#include <osbind.h>
#include <stat.h>

static	 DMABUFFER	wilddta;

char path[80];

char *wildcard(pathname) char *pathname;
{
	char *tmp;
	char fullnam[128];
	DMABUFFER *olddta;
	int search;
	extern char *rindex();

	olddta = Fgetdta();
	Fsetdta(&wilddta);
	do {
	    if(pathname)				/* get first match */
	    {
		strcpy(path, pathname);
		tmp = rindex(path, '\\');
		if(tmp++) *tmp = 0;
		else path[0] = 0;
		search = Fsfirst(pathname, 0x3B);	/* No SYSTEM files */
	    }
	    else					/* get next match */
	    {
		search = Fsnext();
	    }
	    pathname = 0L;
	} while( !search && ( !(strcmp(wilddta.d_fname, ".")) ||
		 	      !(strcmp(wilddta.d_fname, "..")) ) );

	Fsetdta(olddta);
	if(search == 0)
	{
		sprintf(fullnam, "%s%s", path, wilddta.d_fname);
		return(fullnam);
	}
	return((char *)(0));
}

#ifdef TEST
#include <stdio.h>
main(argc, argv) int argc; char *argv[];
{
	char wname[16];

	sprintf(wname, "%s\n", wildcard(argv[1]));
	while(wname[0] != '{')
	{
		printf(wname);
		sprintf(wname, "%s\n", wildcard(0L));
	}
}
#endif
