Changeset 54 for trunk/dll/dirsize.c
- Timestamp:
- Apr 18, 2003, 5:03:24 AM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/dirsize.c
r51 r54 60 60 CHAR *stopflag,BOOL top) 61 61 { 62 CHAR maskstr[CCHMAXPATH],* endpath;62 CHAR maskstr[CCHMAXPATH],*pEndMask; 63 63 register char *p,*sp,*pp; 64 64 ULONG nm,totalbytes = 0L,subbytes = 0L,temp; … … 75 75 if(maskstr[strlen(maskstr) - 1] != '\\') 76 76 strcat(maskstr,"\\"); 77 endpath = &maskstr[strlen(maskstr)];77 pEndMask = &maskstr[strlen(maskstr)]; // Point after last \ 78 78 strcat(maskstr,"*"); 79 79 //printf("%s\n",maskstr); … … 95 95 * requesting EASIZE. sheesh. 96 96 */ 97 if((!rc && (ffb->attrFile & FILE_DIRECTORY)) || strlen(filename) < 4) { 97 if((!rc && (ffb->attrFile & FILE_DIRECTORY)) || strlen(filename) < 4) 98 { 98 99 if(*stopflag) { 99 100 free(ffb); … … 116 117 pciP->attrFile = 0L; 117 118 } 118 else { 119 else 120 { 119 121 free(ffb); 120 122 Dos_Error(MB_ENTER, … … 168 170 } 169 171 hdir = HDIR_CREATE; 170 nm = /* FilesToGet; */1L;172 nm = 1L; 171 173 //printf("FIND2\n"); 172 174 rc = DosFindFirst(maskstr,&hdir, 173 175 FILE_NORMAL | FILE_READONLY | FILE_ARCHIVED | 174 FILE_SYSTEM | FILE_HIDDEN | FILE_DIRECTORY,ffb, 175 sizeof(FILEFINDBUF4) /* * FilesToGet */, 176 &nm,FIL_QUERYEASIZE); 177 if(!rc) { 178 176 FILE_SYSTEM | FILE_HIDDEN | FILE_DIRECTORY, 177 ffb, 178 sizeof(FILEFINDBUF4), 179 &nm, 180 FIL_QUERYEASIZE); 181 if(!rc) 182 { 179 183 register PBYTE fb = (PBYTE)ffb; 180 184 FILEFINDBUF4 *pffbFile; 181 185 ULONG x; 182 186 183 while(!rc) { 187 while(!rc) 188 { 184 189 priority_normal(); 185 190 //printf("Found %lu\n",nm); 186 for(x = 0L;x < nm;x++) { 191 for(x = 0L;x < nm;x++) 192 { 187 193 pffbFile = (FILEFINDBUF4 *)fb; 188 194 //printf("%s\n",pffbFile->achName); 189 195 //fflush(stdout); 190 if((*pffbFile->achName != '.' || (pffbFile->achName[1] && 191 pffbFile->achName[1] != '.')) || 192 !(pffbFile->attrFile & FILE_DIRECTORY)) { 196 // Total size skipping . and .. 197 if((*pffbFile->achName != '.' || 198 (pffbFile->achName[1] && pffbFile->achName[1] != '.')) || 199 !(pffbFile->attrFile & FILE_DIRECTORY)) 200 { 193 201 totalbytes += pffbFile->cbFile + 194 202 CBLIST_TO_EASIZE(pffbFile->cbList); 195 203 if(!(pffbFile->attrFile & FILE_DIRECTORY)) 196 pciP->attrFile++; 204 pciP->attrFile++; // Bump file count 197 205 if(*stopflag) 198 206 break; 199 207 if(pffbFile->attrFile & FILE_DIRECTORY) { 200 strcpy(endpath,pffbFile->achName); 208 // Recurse into subdir 209 strcpy(pEndMask,pffbFile->achName); // Append dirname to base dirname 201 210 if(!*stopflag) 211 { 202 212 temp = ProcessDir(hwndCnr,maskstr,pciP,stopflag,FALSE); 203 if(temp != (ULONG)-1L) 204 subbytes += temp; 213 if(temp != (ULONG)-1L) 214 subbytes += temp; 215 } 205 216 } 206 217 } … … 208 219 break; 209 220 fb += pffbFile->oNextEntryOffset; 210 } 221 } // for matches 211 222 if(*stopflag) 212 223 break; 213 224 DosSleep(0L); 214 nm = /* FilesToGet; */ 1L;215 rc = DosFindNext(hdir,ffb,sizeof(FILEFINDBUF4) /* * FilesToGet */,&nm);216 } 225 nm = 1L; /* FilesToGet */ 226 rc = DosFindNext(hdir,ffb,sizeof(FILEFINDBUF4) ,&nm); 227 } // while more found 217 228 DosFindClose(hdir); 218 229 priority_normal(); … … 228 239 229 240 VOID FillInRecSizes (HWND hwndCnr,PCNRITEM pciParent,ULONG totalbytes, 230 CHAR *stopflag,BOOL isroot) {231 241 CHAR *stopflag,BOOL isroot) 242 { 232 243 PCNRITEM pci = pciParent; 233 244 SHORT attrib = CMA_FIRSTCHILD; … … 348 359 349 360 350 static VOID FillCnrs (VOID *args) {351 361 static VOID FillCnrs (VOID *args) 362 { 352 363 HAB hab; 353 364 HMQ hmq; … … 362 373 DosError(FERR_DISABLEHARDERR); 363 374 364 //priority_normal();375 // priority_normal(); 365 376 hab = WinInitialize(0); 366 377 if(hab) { … … 387 398 388 399 389 MRESULT EXPENTRY DirSizeProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {390 400 MRESULT EXPENTRY DirSizeProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 401 { 391 402 TEMP *data; 392 403
Note:
See TracChangeset
for help on using the changeset viewer.