1
0
Fork 0

Support rarely used FCB feature: open file with search mask. Fixes Buckaroo Banzai.

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4096
This commit is contained in:
ripsaw8080 2018-05-03 16:08:53 +00:00
parent a315f74074
commit c7ced14d56

View file

@ -971,6 +971,20 @@ bool DOS_FCBOpen(Bit16u seg,Bit16u offset) {
char shortname[DOS_FCBNAME];Bit16u handle;
fcb.GetName(shortname);
/* Search for file if name has wildcards */
if (strpbrk(shortname,"*?")) {
LOG(LOG_FCB,LOG_WARN)("Wildcards in filename");
if (!DOS_FCBFindFirst(seg,offset)) return false;
DOS_DTA find_dta(dos.tables.tempdta);
DOS_FCB find_fcb(RealSeg(dos.tables.tempdta),RealOff(dos.tables.tempdta));
char name[DOS_NAMELENGTH_ASCII],file_name[9],ext[4];
Bit32u size;Bit16u date,time;Bit8u attr;
find_dta.GetResult(name,size,date,time,attr);
DTAExtendName(name,file_name,ext);
find_fcb.SetName(fcb.GetDrive()+1,file_name,ext);
find_fcb.GetName(shortname);
}
/* First check if the name is correct */
Bit8u drive;
char fullname[DOS_PATHLENGTH];