On Thu, 12 Aug 2004, Erwin Veermans wrote: > issue he raised here but good enough for testing. Unfortunately > it broke "mkdir" so this would need a bit more work than the > 3 patch-lines I got from Eric.
Hmm. Stange that it broke mkdir. > [Eric's incomplete patch-proposal] > > dosfns.c DosFindNext: > wrong --> > if (dmp->dm_attr_fnd & (D_DEVICE | D_VOLID)) > return DE_NFILES; > correction --> > if (dmp->dm_attr_find & (D_DEVICE)) > return DE_NFILES; ok, that's bit clearer than his email (which was about 10x longer than necessary, but obviously I'm the only one here who thinks that?). The dosfns.c "correction" here is wrong IMHO. What it means is: " if the direntry *found* in the findfirst has VOLID or DEVICE bits set then we aren't searching any further " This is not the same as the search attribute in dm_attr_srch, it merely reflects the fact that we only want to find *one* volume label or device. I'd propose to *only* apply the patch to fatdir.c, i.e. what's below. In my own testing mkdir still works. Bart --- fatdir.c.~1.47.~ 2004-05-24 06:28:18.000000000 +1200 +++ fatdir.c 2004-08-11 20:35:37.000000000 +1200 @@ -384,7 +384,7 @@ /* directory and only searched for once. So we need to open */ /* the root and return only the first entry that contains the */ /* volume id bit set. */ - if ((attr & (D_VOLID|D_DIR))==D_VOLID) + if ((attr & ~(D_RDONLY|D_ARCHIVE))==D_VOLID) i = 3; /* Now open this directory so that we can read the */ /* fnode entry and do a match on it. */ @@ -406,7 +406,7 @@ /* Copy the raw pattern from our data segment to the DTA. */ fmemcpy(dmp->dm_name_pat, SearchDir.dir_name, FNAME_SIZE + FEXT_SIZE); - if ((attr & (D_VOLID|D_DIR))==D_VOLID) + if ((attr & ~(D_RDONLY|D_ARCHIVE))==D_VOLID) { /* Now do the search */ while (dir_read(fnp) == 1) ------------------------------------------------------- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 _______________________________________________ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel