- Timestamp:
- Oct 26, 2002, 6:51:33 AM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/filldir.c
r31 r42 9 9 Copyright (c) 2001, 2002 Steven H.Levine 10 10 11 Revisions 12 Sep 02 SHL - Minor edits11 Revisions 12 Sep 02 SHL - Rework symbols to understand code 12 12 13 13 ***********************************************************************/ … … 187 187 } 188 188 else { 189 if (!fNoIconsFiles && (!isalpha(*pci->szFileName) ||189 if (!fNoIconsFiles && (!isalpha(*pci->szFileName) || 190 190 !(driveflags[toupper(*pci->szFileName) - 'A'] & DRIVE_NOLOADICONS))) 191 191 hptr = WinLoadFileIcon(pci->szFileName, FALSE); 192 else { 192 else 193 hptr = (HPOINTER)0; 194 if (!hptr || hptr == WinQuerySysPointer(HWND_DESKTOP,SPTR_FILE,FALSE)) { 193 195 p = strrchr(pci->szFileName,'.'); 194 196 if(p && !p[4]) { … … 511 513 */ 512 514 513 PSZ szFileSpec;515 PSZ pszFileSpec; 514 516 INT t; 515 PFILEFINDBUF4 p ffb,*ppffb,pffbFile,pfTotal = NULL,pfTemp;517 PFILEFINDBUF4 paffbFound,*papffbSelected,pffbFile,paffbTotal = NULL,paffbTemp; 516 518 HDIR hdir = HDIR_CREATE; 517 519 ULONG ulMaxFiles,ulExtraBytes,ulM = 1L,ulTotal = 0L; … … 521 523 PCNRITEM pci,pciFirst,pcit; 522 524 RECORDINSERT ri; 523 register PBYTE fb,tb;525 register PBYTE pByte,pByte2; 524 526 525 527 if(foundany) … … 545 547 546 548 ulMaxFiles = ulM; 547 szFileSpec = malloc(CCHMAXPATH + 2);548 p ffb= malloc((ulM + 1L) * sizeof(FILEFINDBUF4));549 p pffb= malloc((ulM + 1L) * sizeof(PFILEFINDBUF4));550 if(p ffb && ppffb &&szFileSpec) {549 pszFileSpec = malloc(CCHMAXPATH + 2); 550 paffbFound = malloc((ulM + 1L) * sizeof(FILEFINDBUF4)); 551 papffbSelected = malloc((ulM + 1L) * sizeof(PFILEFINDBUF4)); 552 if(paffbFound && papffbSelected && pszFileSpec) { 551 553 t = strlen(szDirBase); 552 memcpy( szFileSpec,szDirBase,t + 1);553 pchEndPath = szFileSpec + t;554 memcpy(pszFileSpec,szDirBase,t + 1); 555 pchEndPath = pszFileSpec + t; 554 556 if(*(pchEndPath - 1) != '\\') { 555 557 memcpy(pchEndPath,"\\",2); … … 558 560 memcpy(pchEndPath,"*",2); 559 561 DosError(FERR_DISABLEHARDERR); 560 rc = DosFindFirst( szFileSpec, &hdir,562 rc = DosFindFirst(pszFileSpec, &hdir, 561 563 FILE_NORMAL | ((filestoo) ? FILE_DIRECTORY : 562 564 MUST_HAVE_DIRECTORY) | FILE_READONLY | 563 565 FILE_ARCHIVED | FILE_SYSTEM | FILE_HIDDEN, 564 p ffb, ulM * sizeof(FILEFINDBUF4),566 paffbFound, ulM * sizeof(FILEFINDBUF4), 565 567 &ulMaxFiles, FIL_QUERYEASIZE); 566 568 priority_normal(); … … 580 582 if(stopflag && *stopflag) 581 583 goto Abort; 582 fb = (PBYTE)pffb;584 pByte = (PBYTE)paffbFound; 583 585 x = 0L; 584 586 while(x < ulMaxFiles) { 585 pffbFile = (PFILEFINDBUF4) fb;587 pffbFile = (PFILEFINDBUF4)pByte; 586 588 if(!*pffbFile->achName || 587 589 (!filestoo && !(pffbFile->attrFile & FILE_DIRECTORY)) || … … 592 594 ulMaxFiles--; 593 595 else 594 p pffb[x++] = pffbFile;596 papffbSelected[x++] = pffbFile; 595 597 if(!pffbFile->oNextEntryOffset) { 596 598 ulMaxFiles = x; 597 599 break; 598 600 } 599 fb+= pffbFile->oNextEntryOffset;601 pByte += pffbFile->oNextEntryOffset; 600 602 } 601 603 if(ulMaxFiles) { … … 613 615 totalbytes = 0L; 614 616 for(i = 0; i < ulMaxFiles; i++) { 615 pffbFile = p pffb[i];616 numbytes = FillInRecordFromFFB(hwndCnr,pci, szFileSpec,617 pffbFile = papffbSelected[i]; 618 numbytes = FillInRecordFromFFB(hwndCnr,pci,pszFileSpec, 617 619 pffbFile,partial,dcd); 618 620 if(numbytes > -1L) { … … 696 698 } 697 699 else { 698 p fTemp = realloc(pfTotal,sizeof(FILEFINDBUF4) *700 paffbTemp = realloc(paffbTotal,sizeof(FILEFINDBUF4) * 699 701 (ulMaxFiles + ulTotal)); 700 if(p fTemp) {701 p fTotal = pfTemp;702 if(paffbTemp) { 703 paffbTotal = paffbTemp; 702 704 for(x = 0;x < ulMaxFiles;x++) 703 p fTotal[x + ulTotal] = *ppffb[x];705 paffbTotal[x + ulTotal] = *papffbSelected[x]; 704 706 ulTotal += ulMaxFiles; 705 707 } … … 718 720 ulMaxFiles = ulM; 719 721 DosError(FERR_DISABLEHARDERR); 720 rc = DosFindNext(hdir, p ffb, ulM * sizeof(FILEFINDBUF4),722 rc = DosFindNext(hdir, paffbFound, ulM * sizeof(FILEFINDBUF4), 721 723 &ulMaxFiles); 722 724 priority_normal(); … … 726 728 DosFindClose(hdir); 727 729 728 if(p ffb || ppffb) {729 if(p ffb)730 free(p ffb);731 if(p pffb)732 free(p pffb);733 p pffb= NULL;734 p ffb= NULL;735 } 736 737 if(ulTotal && p fTotal) {730 if(paffbFound || papffbSelected) { 731 if(paffbFound) 732 free(paffbFound); 733 if(papffbSelected) 734 free(papffbSelected); 735 papffbSelected = NULL; 736 paffbFound = NULL; 737 } 738 739 if(ulTotal && paffbTotal) { 738 740 if(stopflag && *stopflag) 739 741 goto Abort; … … 747 749 pci = pciFirst; 748 750 totalbytes = 0L; 749 tb = (PBYTE)pfTotal;751 pByte2 = (PBYTE)paffbTotal; 750 752 for(i = 0; i < ulTotal; i++) { 751 pffbFile = (PFILEFINDBUF4) tb;752 numbytes = FillInRecordFromFFB(hwndCnr,pci, szFileSpec,753 pffbFile = (PFILEFINDBUF4)pByte2; 754 numbytes = FillInRecordFromFFB(hwndCnr,pci,pszFileSpec, 753 755 pffbFile,partial,dcd); 754 756 if(numbytes > -1L) { … … 765 767 ulTotal--; 766 768 } 767 tb+= sizeof(FILEFINDBUF4);769 pByte2 += sizeof(FILEFINDBUF4); 768 770 } 769 771 if(ulTotal) { … … 835 837 } 836 838 Abort: 837 if(p fTotal || ppffb || pffb ||szFileSpec) {838 if(p fTotal)839 free(p fTotal);840 if( szFileSpec)841 free( szFileSpec);842 if(p ffb)843 free(p ffb);844 if(p pffb)845 free(p pffb);839 if(paffbTotal || papffbSelected || paffbFound || pszFileSpec) { 840 if(paffbTotal) 841 free(paffbTotal); 842 if(pszFileSpec) 843 free(pszFileSpec); 844 if(paffbFound) 845 free(paffbFound); 846 if(papffbSelected) 847 free(papffbSelected); 846 848 } 847 849 if(recurse) {
Note:
See TracChangeset
for help on using the changeset viewer.