#include #include 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 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