Changeset 54 for trunk/dll/dirsize.c


Ignore:
Timestamp:
Apr 18, 2003, 5:03:24 AM (22 years ago)
Author:
root
Message:

Use CBLIST_TO_EASIZE

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/dirsize.c

    r51 r54  
    6060                         CHAR *stopflag,BOOL top)
    6161{
    62   CHAR           maskstr[CCHMAXPATH],*endpath;
     62  CHAR           maskstr[CCHMAXPATH],*pEndMask;
    6363  register char *p,*sp,*pp;
    6464  ULONG          nm,totalbytes = 0L,subbytes = 0L,temp;
     
    7575  if(maskstr[strlen(maskstr) - 1] != '\\')
    7676    strcat(maskstr,"\\");
    77   endpath = &maskstr[strlen(maskstr)];
     77  pEndMask = &maskstr[strlen(maskstr)]; // Point after last \
    7878  strcat(maskstr,"*");
    7979//printf("%s\n",maskstr);
     
    9595   * requesting EASIZE.  sheesh.
    9696   */
    97   if((!rc && (ffb->attrFile & FILE_DIRECTORY)) || strlen(filename) < 4) {
     97  if((!rc && (ffb->attrFile & FILE_DIRECTORY)) || strlen(filename) < 4)
     98  {
    9899    if(*stopflag) {
    99100      free(ffb);
     
    116117    pciP->attrFile = 0L;
    117118  }
    118   else {
     119  else
     120  {
    119121    free(ffb);
    120122    Dos_Error(MB_ENTER,
     
    168170  }
    169171  hdir = HDIR_CREATE;
    170   nm = /* FilesToGet; */ 1L;
     172  nm = 1L;
    171173//printf("FIND2\n");
    172174  rc = DosFindFirst(maskstr,&hdir,
    173175                    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  {
    179183    register PBYTE fb = (PBYTE)ffb;
    180184    FILEFINDBUF4  *pffbFile;
    181185    ULONG          x;
    182186
    183     while(!rc) {
     187    while(!rc)
     188    {
    184189      priority_normal();
    185190      //printf("Found %lu\n",nm);
    186       for(x = 0L;x < nm;x++) {
     191      for(x = 0L;x < nm;x++)
     192      {
    187193        pffbFile = (FILEFINDBUF4 *)fb;
    188194        //printf("%s\n",pffbFile->achName);
    189195        //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        {
    193201            totalbytes += pffbFile->cbFile +
    194202                          CBLIST_TO_EASIZE(pffbFile->cbList);
    195203          if(!(pffbFile->attrFile & FILE_DIRECTORY))
    196             pciP->attrFile++;
     204            pciP->attrFile++;           // Bump file count
    197205          if(*stopflag)
    198206            break;
    199207          if(pffbFile->attrFile & FILE_DIRECTORY) {
    200             strcpy(endpath,pffbFile->achName);
     208            // Recurse into subdir
     209            strcpy(pEndMask,pffbFile->achName); // Append dirname to base dirname
    201210            if(!*stopflag)
     211            {
    202212              temp = ProcessDir(hwndCnr,maskstr,pciP,stopflag,FALSE);
    203             if(temp != (ULONG)-1L)
    204               subbytes += temp;
     213              if(temp != (ULONG)-1L)
     214                subbytes += temp;
     215            }
    205216          }
    206217        }
     
    208219          break;
    209220        fb += pffbFile->oNextEntryOffset;
    210       }
     221      } // for matches
    211222      if(*stopflag)
    212223        break;
    213224      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
    217228    DosFindClose(hdir);
    218229    priority_normal();
     
    228239
    229240VOID FillInRecSizes (HWND hwndCnr,PCNRITEM pciParent,ULONG totalbytes,
    230                      CHAR *stopflag,BOOL isroot) {
    231 
     241                     CHAR *stopflag,BOOL isroot)
     242{
    232243  PCNRITEM pci = pciParent;
    233244  SHORT    attrib = CMA_FIRSTCHILD;
     
    348359
    349360
    350 static VOID FillCnrs (VOID *args) {
    351 
     361static VOID FillCnrs (VOID *args)
     362{
    352363  HAB           hab;
    353364  HMQ           hmq;
     
    362373  DosError(FERR_DISABLEHARDERR);
    363374
    364 // priority_normal();
     375  // priority_normal();
    365376  hab = WinInitialize(0);
    366377  if(hab) {
     
    387398
    388399
    389 MRESULT EXPENTRY DirSizeProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
    390 
     400MRESULT EXPENTRY DirSizeProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     401{
    391402  TEMP *data;
    392403
Note: See TracChangeset for help on using the changeset viewer.