Changeset 751 for trunk/dll/dirsize.c


Ignore:
Timestamp:
Aug 2, 2007, 11:05:48 PM (13 years ago)
Author:
Steven Levine
Message:

Sync rest of code with CNRITEM mods
Sync code with ARCITEM mods
Get compare dialog working
Still some issues with status display
Still some issues with directory sizes tree display
Heap check diagnostic code mostly enabled

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/dirsize.c

    r739 r751  
    8585{
    8686  CHAR maskstr[CCHMAXPATH];
     87  CHAR szBuf[CCHMAXPATH];
    8788  CHAR *pEndMask;
    8889  register char *p;
     
    113114
    114115  hdir = HDIR_CREATE;
    115   nm = 1L;
     116  nm = 1;
    116117  memset(pffb, 0, sizeof(FILEFINDBUF4));
    117118  DosError(FERR_DISABLEHARDERR);
     
    135136      return FALSE;
    136137    }
    137     pci = WinSendMsg(hwndCnr, CM_ALLOCRECORD, MPFROMLONG(EXTRA_RECORD_BYTES2),
    138                      MPFROMLONG(1L));
     138    pci = WinSendMsg(hwndCnr, CM_ALLOCRECORD, MPFROMLONG(EXTRA_RECORD_BYTES),
     139                     MPFROMLONG(1));
    139140    if (!pci) {
    140141      free(pffb);
     
    148149      DosError(FERR_DISABLEHARDERR);
    149150    pci->rc.hptrIcon = hptrDir;
    150     *pci->szDispAttr = 0;
    151151    pci->attrFile = 0;
    152     pci->pszSubject = xstrdup(NullStr, pszSrcFile, __LINE__);
     152    pci->pszDispAttr = NullStr;
     153    pci->pszSubject = NullStr;
    153154  }
    154155  else {
     
    163164
    164165  if (strlen(pszFileName) < 4 || top)
    165    pci->pszFileName = xstrdup(pszFileName, pszSrcFile, __LINE__);
     166    pci->pszFileName = xstrdup(pszFileName, pszSrcFile, __LINE__);
    166167  else {
    167168    p = strrchr(pszFileName, '\\');
     
    170171    else
    171172      p++;                              // After last backslash
    172     // Handle quoted names?
     173    // Handle quoted names
     174    // fixme to understand this - why lose path prefix?
    173175    sp = strchr(pszFileName, ' ') != NULL ? "\"" : NullStr;
    174     pci->pszFileName = xmalloc(CCHMAXPATH, pszSrcFile, __LINE__);       // fixme to optimize alloc
    175     pp = pci->pszFileName;
    176     if (*sp) {
    177       *pp = *sp;                        // Need quotes
    178       pp++;
    179       *pp = 0;
    180     }
     176    pp = szBuf;
     177    if (*sp)
     178      *pp++ = *sp;                      // Need quotes
    181179    strcpy(pp, p);
    182180    if (*sp)
    183181      strcat(pp, sp);
    184   }
    185   pci->pszLongname = pci->pszFileName;
    186   pci->rc.pszIcon = pci->pszLongname;
     182    pci->pszFileName = xstrdup(szBuf, pszSrcFile, __LINE__);
     183  }
     184  // fixme to know why - it appears to be indirectly saving length, but why?
     185  pci->pszDisplayName = pci->pszFileName + strlen(pci->pszFileName);
     186  pci->pszLongname = pci->pszFileName;          // fixme to be sure?
     187  pci->rc.pszIcon = pci->pszFileName;
    187188  pci->rc.flRecordAttr |= CRA_RECORDREADONLY;
    188189  if (fForceUpper)
     
    196197  ri.pRecordParent = (PRECORDCORE) pciParent;
    197198  ri.zOrder = (USHORT) CMA_TOP;
    198   ri.cRecordsInsert = 1L;
     199  ri.cRecordsInsert = 1;
    199200  ri.fInvalidateRecord = TRUE;
    200201  if (!WinSendMsg(hwndCnr, CM_INSERTRECORD, MPFROMP(pci), MPFROMP(&ri))) {
     
    203204  }
    204205  hdir = HDIR_CREATE;
    205   nm = 1L;
     206  nm = 1;
    206207  rc = DosFindFirst(maskstr, &hdir,
    207208                    FILE_NORMAL | FILE_READONLY | FILE_ARCHIVED |
     
    216217      priority_normal();
    217218      //printf("Found %lu\n",nm);
    218       for (x = 0L; x < nm; x++) {
     219      for (x = 0; x < nm; x++) {
    219220        pffbFile = (FILEFINDBUF4 *) fb;
    220221        //printf("%s\n",pffbFile->achName);
     
    247248      if (*pchStopFlag)
    248249        break;
    249       DosSleep(0L);
    250       nm = 1L;                          /* FilesToGet */
     250      DosSleep(1);
     251      nm = 1;                           /* FilesToGet */
    251252      rc = DosFindNext(hdir, pffb, sizeof(FILEFINDBUF4), &nm);
    252253    }                                   // while more found
     
    276277
    277278    float fltPct = 0.0;
     279    USHORT c;
    278280    CHAR szCurDir[80];
    279281    CHAR szSubDir[80];
     
    301303        }
    302304        // Need unique buffer 23 Jul 07 SHL
    303         pci->pszLongname = xmalloc(2, pszSrcFile, __LINE__);
     305        pci->pszLongname = xmalloc(2, pszSrcFile, __LINE__);
    304306        pci->pszLongname[0] = 0;                // Make null string
    305307        pci->pszLongname[1] = 1;                // Flag root - hack cough
     
    323325    CommaFmtULL(szSubDir, sizeof(szSubDir), pci->easize, 'K');
    324326    CommaFmtULL(szAllDir, sizeof(szAllDir), pci->cbFile + pci->easize, 'K');
    325     pci->pszFileName = xrealloc(pci->pszFileName, strlen(pci->pszFileName) + 100,
     327    c = pci->pszDisplayName - pci->pszFileName;
     328    pci->pszFileName = xrealloc(pci->pszFileName,
     329                                CCHMAXPATH,
    326330                                pszSrcFile,
    327331                                __LINE__);      // 23 Jul 07 SHL
    328     sprintf(pci->pszFileName + strlen(pci->pszFileName),
     332    sprintf(pci->pszFileName + c,
    329333            "  %s + %s = %s (%.02lf%%%s)\r%s",
    330334            szCurDir,
    331335            szSubDir,
    332336            szAllDir,
    333             fltPct, isroot ? GetPString(IDS_OFDRIVETEXT) : NullStr, szBar);
     337            fltPct,
     338            isroot ? GetPString(IDS_OFDRIVETEXT) : NullStr,
     339            szBar);
     340    pci->pszFileName = xrealloc(pci->pszFileName,
     341                                strlen(pci->pszFileName) + 1,
     342                                pszSrcFile,
     343                                __LINE__);      // 23 Jul 07 SHL
     344    pci->pszDisplayName = pci->pszFileName + c;
    334345    WinSendMsg(hwndCnr,
    335346               CM_INVALIDATERECORD, MPFROMP(&pci), MPFROM2SHORT(1, 0));
     
    377388                                               CMA_ITEMORDER));
    378389      while (pci && (INT) pci != -1) {
    379         DosSleep(0L);
     390        DosSleep(1);
    380391        PrintToFile(hwndCnr, indent + 1, pci, fp);
    381392        pci = (PCNRITEM) WinSendMsg(hwndCnr, CM_QUERYRECORD, MPFROMP(pci),
     
    462473      dirsize->pszFileName = pState->szDirName;
    463474      dirsize->hwndCnr = WinWindowFromID(hwnd, DSZ_CNR);
    464       if (_beginthread(FillCnrThread, NULL, 122880L * 5L, (PVOID) dirsize) ==
     475      if (_beginthread(FillCnrThread, NULL, 122880L * 5, (PVOID)dirsize) ==
    465476          -1) {
    466477        Runtime_Error(pszSrcFile, __LINE__,
     
    489500                        MPFROMP(&cnri), MPFROMLONG(sizeof(CNRINFO)));
    490501      cnri.cyLineSpacing = 0;
    491       cnri.cxTreeIndent = 12L;
     502      cnri.cxTreeIndent = 12;
    492503      cnri.flWindowAttr = CV_TREE | CV_FLOW | CA_TREELINE | CA_OWNERDRAW;
    493504      WinSendDlgItemMsg(hwnd, DSZ_CNR, CM_SETCNRINFO, MPFROMP(&cnri),
     
    760771            memset(szTemp, 0, sizeof(szTemp));
    761772            strncpy(szTemp, pci->pszFileName,
    762                     pci->pszFileName - pci->pszFileName);
     773                    pci->pszDisplayName - pci->pszFileName);
    763774            strrev(szTemp);
    764775            if (*szFileName && *szTemp != '\\')
     
    771782          strrev(szFileName);
    772783          if (!fVTreeOpensWPS)
    773             OpenDirCnr((HWND) 0,
    774                        (hwndMain) ? hwndMain : HWND_DESKTOP,
    775                        hwnd, FALSE, szFileName);
     784            OpenDirCnr((HWND)0,
     785                       hwndMain ? hwndMain : HWND_DESKTOP,
     786                       hwnd,
     787                       FALSE,
     788                       szFileName);
    776789          else {
    777790
     
    908921    if (pState)
    909922      pState->chStopFlag = (BYTE)0xff;
    910     DosSleep(1L);
     923    DosSleep(1);
    911924    break;
    912925
     
    917930      if (pState->hptr)
    918931        WinDestroyPointer(pState->hptr);
    919       DosSleep(33L);
     932      DosSleep(33);
    920933      free(pState);                     // Let's hope no one is still looking
    921934    }
Note: See TracChangeset for help on using the changeset viewer.