Changeset 769


Ignore:
Timestamp:
Aug 6, 2007, 2:24:09 AM (13 years ago)
Author:
Steven Levine
Message:

Rework compare directories select/deselect logic
Sanitize CNRITEM_EXISTS usage
Correct BldFullPathName? typo

Location:
trunk/dll
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/comp.c

    r765 r769  
    357357  HWND hwndCnrS, hwndCnrD;
    358358  PCNRITEM pci, pciD, pciNextS, pciNextD;
    359   CHAR newname[CCHMAXPATH], dirname[CCHMAXPATH], *p;
    360   PSZ pszNewName = newname;
     359  CHAR szNewName[CCHMAXPATH], szDirName[CCHMAXPATH], *p;
    361360  APIRET rc;
    362361
     
    459458          case IDM_MOVE:
    460459            if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR))
    461               // 02 Aug 07 SHL fixme to replace this kind of stuff with _makepath or equivalent
    462               BldFullPathName(pszNewName, cmp->leftdir, pci->pszDisplayName);
    463               //sprintf(newname, "%s%s%s",
     460              // 02 Aug 07 SHL fixme to replace this kind of stuff with _makepath or equivalent
     461              BldFullPathName(szNewName, cmp->leftdir, pci->pszDisplayName);
     462              //sprintf(szNewName, "%s%s%s",
    464463              //        cmp->leftdir,
    465464              //        cmp->leftdir[strlen(cmp->leftdir) - 1] == '\\' ?
    466               //        NullStr : "\\",
    467               //        pci->pszDisplayName);
    468             else
    469               BldFullPathName(pszNewName, cmp->rightdir, pci->pszDisplayName);
    470               //sprintf(newname, "%s%s%s",
     465              //        NullStr : "\\",
     466              //        pci->pszDisplayName);
     467            else
     468              BldFullPathName(szNewName, cmp->rightdir, pci->pszDisplayName);
     469              //sprintf(szNewName, "%s%s%s",
    471470              //        cmp->rightdir,
    472471             //         cmp->rightdir[strlen(cmp->rightdir) - 1] == '\\' ?
    473              //         NullStr : "\\",
     472             // NullStr : "\\",
    474473             //         pci->pszDisplayName);
    475474            // Make directory if required
    476             strcpy(dirname, newname);
    477             p = strrchr(dirname, '\\');
     475            strcpy(szDirName, szNewName);
     476            p = strrchr(szDirName, '\\');
    478477            if (p) {
    479               if (p > dirname + 2)
     478              if (p > szDirName + 2)
    480479                p++;
    481480              *p = 0;
    482               if (IsFile(dirname) == -1)
    483                 MassMkdir(hwndMain, dirname);
     481              if (IsFile(szDirName) == -1)
     482                MassMkdir(hwndMain, szDirName);
    484483            }
    485             rc = docopyf(MOVE, pci->pszFileName, "%s", newname);
    486             if (!rc && stricmp(pci->pszFileName, newname)) {
     484            rc = docopyf(MOVE, pci->pszFileName, "%s", szNewName);
     485            if (!rc && stricmp(pci->pszFileName, szNewName)) {
    487486              WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pci),
    488487                         MPFROM2SHORT(FALSE, CRA_SELECTED));
     
    491490                           MPFROM2SHORT(FALSE, CRA_SELECTED));
    492491              FreeCnrItemData(pciD);
    493               pciD->pszFileName = xstrdup(newname, pszSrcFile, __LINE__);
     492              pciD->pszFileName = xstrdup(szNewName, pszSrcFile, __LINE__);
    494493              if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR)) {
    495494                pciD->pszDisplayName = pciD->pszFileName + strlen(cmp->leftdir);
     
    502501                  pciD->pszDisplayName++;
    503502              }
    504               // 02 Aug 07 SHL fixme to know Longname transfer is correct?
     503              // 02 Aug 07 SHL fixme to know if LongName transfer is correct?
    505504              pciD->pszLongName = pci->pszLongName;
    506505              if (pciD->pszSubject != NullStr) {
     
    510509              pciD->attrFile = pci->attrFile;
    511510              pciD->pszDispAttr = pci->pszDispAttr;
    512               pciD->flags = CNRITEM_EXISTS;     // 04 Aug 07 SHL
     511              pciD->flags = 0;          // Just on one side
    513512              pciD->date = pci->date;
    514513              pciD->time = pci->time;
     
    544543                             __LINE__,
    545544                             GetPString(IDS_COMPMOVEFAILEDTEXT),
    546                              pci->pszFileName, newname);
     545                             pci->pszFileName, szNewName);
    547546              if (rc == MBID_CANCEL)    // Cause loop to break
    548547                pciNextS = NULL;
     
    551550
    552551          case IDM_COPY:
    553             if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR))
    554               BldFullPathName(pszNewName, cmp->leftdir, pci->pszDisplayName);
    555               //sprintf(newname, "%s%s%s",
     552            if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR))
     553              BldFullPathName(szNewName, cmp->leftdir, pci->pszDisplayName);
     554              //sprintf(szNewName, "%s%s%s",
    556555              //        cmp->leftdir,
    557556              //        cmp->leftdir[strlen(cmp->leftdir) - 1] == '\\' ?
    558               //        NullStr : "\\",
     557              //        NullStr : "\\",
    559558              //         pci->pszDisplayName);
    560             else
    561               BldFullPathName(pszNewName, cmp->rightdir, pci->pszDisplayName);
    562               //sprintf(newname, "%s%s%s",
     559            else
     560              BldFullPathName(szNewName, cmp->rightdir, pci->pszDisplayName);
     561              //sprintf(szNewName, "%s%s%s",
    563562              //        cmp->rightdir,
    564563              //        cmp->rightdir[strlen(cmp->rightdir) - 1] == '\\' ?
    565               //        NullStr : "\\",
     564              //        NullStr : "\\",
    566565              //        pci->pszDisplayName);
    567566            // Make directory if required
    568             strcpy(dirname, newname);
    569             p = strrchr(dirname, '\\');
     567            strcpy(szDirName, szNewName);
     568            p = strrchr(szDirName, '\\');
    570569            if (p) {
    571               if (p > dirname + 2)
     570              if (p > szDirName + 2)
    572571                p++;
    573572              *p = 0;
    574               if (IsFile(dirname) == -1)
    575                 MassMkdir(hwndMain, dirname);
     573              if (IsFile(szDirName) == -1)
     574                MassMkdir(hwndMain, szDirName);
    576575            }
    577             rc = docopyf(COPY, pci->pszFileName, "%s", newname);
     576            rc = docopyf(COPY, pci->pszFileName, "%s", szNewName);
    578577            if (rc) {
    579578              rc = Dos_Error(MB_ENTERCANCEL,
     
    583582                             __LINE__,
    584583                             GetPString(IDS_COMPCOPYFAILEDTEXT),
    585                              pci->pszFileName, newname);
     584                             pci->pszFileName, szNewName);
    586585              if (rc == MBID_CANCEL)
    587586                pciNextS = NULL;                // Cause loop to break
     
    594593                           MPFROM2SHORT(FALSE, CRA_SELECTED));
    595594              FreeCnrItemData(pciD);
    596               pciD->pszFileName = xstrdup(newname, pszSrcFile, __LINE__);
     595              pciD->pszFileName = xstrdup(szNewName, pszSrcFile, __LINE__);
    597596              if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR)) {
    598597                pciD->pszDisplayName = pciD->pszFileName + strlen(cmp->leftdir);
     
    607606              pciD->attrFile = pci->attrFile;
    608607              pciD->pszDispAttr = pci->pszDispAttr;
    609               pciD->flags = CNRITEM_EXISTS;
     608              pciD->flags = CNRITEM_EXISTS;     // Now on both sides
    610609              pciD->date = pci->date;
    611610              pciD->time = pci->time;
     
    617616              pciD->easize = pci->easize;
    618617
    619               // 02 Aug 07 SHL fixme to know why subject cleared?
     618              // Forget status until we regenerate it
    620619              if (pci->pszSubject != NullStr) {
    621620                xfree(pci->pszSubject);
    622621                pci->pszSubject = NullStr;
    623622              }
    624               // 02 Aug 07 SHL fixme to know why - should already be set?
    625               // pci->flags = CNRITEM_EXISTS;
     623              pci->flags = CNRITEM_EXISTS;
    626624
    627625              WinSendMsg(hwndCnrS, CM_INVALIDATERECORD, MPFROMP(&pci),
     
    817815  HWND hwndLeft, hwndRight;
    818816  CHAR szBuf[CCHMAXPATH];
    819   PSZ pszBuf = szBuf;
    820817  CNRINFO cnri;
    821 
    822818
    823819  if (!cmp) {
     
    847843      INT numallocl = 0;
    848844      INT numallocr = 0;
    849       INT lenl;                         // Directory prefix length
    850       INT lenr;
     845      UINT lenl;                        // Directory prefix length
     846      UINT lenr;
    851847      UINT recsNeeded;
    852848      PCNRITEM pcilFirst;
     
    942938
    943939          if (*cmp->rightdir) {
    944             lenr = strlen(cmp->rightdir) +
    945               (cmp->rightdir[strlen(cmp->rightdir) - 1] != '\\');
     940            lenr = strlen(cmp->rightdir);
     941            if (cmp->rightdir[strlen(cmp->rightdir) - 1] != '\\')
     942              lenr++;
    946943            while (!feof(fp)) {
    947944              if (!xfgets_bstripcr
     
    11001097
    11011098          if (x <= 0) {
    1102             // File appears on left side
    1103             BldFullPathName(pszBuf, cmp->leftdir, filesl[l]->fname);
     1099            // File appears on left side
     1100            BldFullPathName(szBuf, cmp->leftdir, filesl[l]->fname);
    11041101            //sprintf(szBuf, "%s%s%s", cmp->leftdir,
    11051102            //        (cmp->leftdir[strlen(cmp->leftdir) - 1] == '\\') ?
    11061103            //        NullStr : "\\", filesl[l]->fname);
    1107             pcil->pszFileName = xstrdup(pszBuf, pszSrcFile, __LINE__);
     1104            pcil->pszFileName = xstrdup(szBuf, pszSrcFile, __LINE__);
    11081105            pcil->pszDisplayName = pcil->pszFileName + lenl;
    11091106            pcil->attrFile = filesl[l]->attrFile;
     
    11351132              }
    11361133            }
    1137             pcil->flags |= CNRITEM_EXISTS;
    11381134          } // if on left
    11391135
    11401136          if (x >= 0) {
    1141             // File appears on right side
    1142             //BldFullPathName(pszBuf, cmp->rightdir, filesl[r]->fname);
    1143             sprintf(szBuf, "%s%s%s", cmp->rightdir,
    1144                     (cmp->rightdir[strlen(cmp->rightdir) - 1] == '\\') ?
    1145                     NullStr : "\\", filesr[r]->fname);
    1146             pcir->pszFileName = xstrdup(pszBuf, pszSrcFile, __LINE__);  // 31 Jul 07 SHL
     1137            // File appears on right side
     1138            BldFullPathName(szBuf, cmp->rightdir, filesl[r]->fname);
     1139            //sprintf(szBuf, "%s%s%s", cmp->rightdir,
     1140            //        (cmp->rightdir[strlen(cmp->rightdir) - 1] == '\\') ?
     1141            //        NullStr : "\\", filesr[r]->fname);
     1142            pcir->pszFileName = xstrdup(szBuf, pszSrcFile, __LINE__);   // 31 Jul 07 SHL
    11471143            pcir->pszDisplayName = pcir->pszFileName + lenr;
    11481144            pcir->attrFile = filesr[r]->attrFile;
     
    11761172              }
    11771173            }
    1178             pcir->flags |= CNRITEM_EXISTS;
    11791174          } // if on right
    11801175
    11811176          if (x == 0) {
    11821177            // File appears on both sides
    1183             pch = pszBuf;
     1178            pcil->flags |= CNRITEM_EXISTS;
     1179            pcir->flags |= CNRITEM_EXISTS;
     1180            pch = szBuf;
    11841181            // Subject field holds status messages
    11851182            *pch = 0;
     
    12111208              pcil->flags |= CNRITEM_NEWER;
    12121209              pcir->flags |= CNRITEM_OLDER;
    1213               if (pch != pszBuf) {
     1210              if (pch != szBuf) {
    12141211                strcpy(pch, ", ");
    12151212                pch += 2;
     
    12331230              pcil->flags |= CNRITEM_OLDER;
    12341231              pcir->flags |= CNRITEM_NEWER;
    1235               if (pch != pszBuf) {
     1232              if (pch != szBuf) {
    12361233                strcpy(pch, ", ");
    12371234                pch += 2;
     
    12401237              pch += 5;
    12411238            }
    1242             // fixme to know why not displayed - defect?
    1243             pcil->pszSubject = pszBuf ?
    1244                                  xstrdup(pszBuf, pszSrcFile, __LINE__) :
     1239            pcil->pszSubject = *szBuf ?
     1240                                 xstrdup(szBuf, pszSrcFile, __LINE__) :
    12451241                                 NullStr;
    12461242
     
    21692165                      FM3ModHandle, WALK2_FRAME,
    21702166                      MPFROMP(&wa)) &&
    2171             !IsFile(wa.szCurrentPath1) && !IsFile(wa.szCurrentPath2)) {
     2167            !IsFile(wa.szCurrentPath1) &&
     2168            !IsFile(wa.szCurrentPath2)) {
    21722169          strcpy(cmp->leftdir, wa.szCurrentPath1);
    21732170          strcpy(cmp->rightdir, wa.szCurrentPath2);
  • trunk/dll/filldir.c

    r765 r769  
    7070 * Build full path name in callers buffer given directory
    7171 * name and filename
    72  * @returns pointer to users buffers
     72 * @returns pointer to full path name in caller's buffer
    7373 *
    7474 */
     
    7878  UINT c = strlen(pszPathName);
    7979  if (c > 0) {
    80     memcpy(pszFullPathName, pszPathName, c + 1);
    81     if (pszFullPathName[c] != '\\')
     80    memcpy(pszFullPathName, pszPathName, c);
     81    if (pszFullPathName[c - 1] != '\\')
    8282      pszFullPathName[c++] = '\\';
    8383  }
     
    8787
    8888/**
    89  * Build quoted full path name in callers buffer given directory
    90  * name and filename
    91  * @returns pointer to users buffers
     89 * Build quoted full path name in callers buffer given
     90 * directory name and filename
     91 * @returns pointer to quoted path name in caller's buffer
    9292 *
    9393 */
     
    104104  if (c > 0) {
    105105    memcpy(pszFullPathName, pszPathName, c);
    106     if (pszFullPathName[c] != '\\')
     106    if (pszFullPathName[c - 1] != '\\')
    107107      pszFullPathName[c++] = '\\';
    108108  }
     
    117117
    118118/**
    119  * Build quoted full path name in callers buffer given directory
    120  * name and filename
    121  * @returns pointer to users buffers
     119 * Build quoted full path name in callers buffer given a filename
     120 * @returns pointer to quoted file name in caller's buffer
    122121 *
    123122 */
  • trunk/dll/fm3dll.h

    r763 r769  
    389389#pragma pack(1)
    390390
    391 #define CNRITEM_SMALLER   0x00010000
     391// Compare directory flags
     392#define CNRITEM_SMALLER   0x00010000    // file exists in both containers and this one is smaller
    392393#define CNRITEM_LARGER    0x00020000
    393394#define CNRITEM_NEWER     0x00040000
    394395#define CNRITEM_OLDER     0x00080000
    395 #define CNRITEM_EXISTS    0x00100000
     396#define CNRITEM_EXISTS    0x00100000    // file exists in both containers
    396397
    397398#define RECFLAGS_ENV      0x00000001
  • trunk/dll/select.c

    r766 r769  
    2222  02 Aug 07 SHL Sync with CNRITEM mods
    2323  04 Aug 07 SHL Use Runtime_Error
     24  05 Aug 07 SHL Rework SpecialSelect to use CNRITEM_EXISTS and
     25               not use pszFileName since CNRITEM_EXISTS set implies
     26               pszFileName not null
    2427
    2528***********************************************************************/
     
    585588  CNRINFO cnri;
    586589  BOOL slow = FALSE;
    587   register INT x, numD, numS;
    588 
     590  UINT x, numD, numS;
    589591
    590592  if (!hwndCnrS || !hwndCnrD) {
     
    597599  WinSendMsg(hwndCnrD, CM_QUERYCNRINFO, MPFROMP(&cnri),
    598600             MPFROMLONG(sizeof(CNRINFO)));
    599   numD = (INT) cnri.cRecords;
     601  numD = cnri.cRecords;
    600602  memset(&cnri, 0, sizeof(CNRINFO));
    601603  cnri.cb = sizeof(CNRINFO);
    602604  WinSendMsg(hwndCnrS, CM_QUERYCNRINFO, MPFROMP(&cnri),
    603605             MPFROMLONG(sizeof(CNRINFO)));
    604   numS = (INT) cnri.cRecords;
     606  numS = cnri.cRecords;
    605607  if (!numD || numS != numD) {
    606608    Runtime_Error(pszSrcFile, __LINE__, "numD %u != numS %u", numD, numS);
     
    622624  memset(pciSa, 0, sizeof(PCNRITEM) * numS);
    623625
    624   pciD = (PCNRITEM) WinSendMsg(hwndCnrD, CM_QUERYRECORD, MPVOID,
     626  pciD = (PCNRITEM)WinSendMsg(hwndCnrD, CM_QUERYRECORD, MPVOID,
    625627                               MPFROM2SHORT(CMA_FIRST, CMA_ITEMORDER));
    626628  x = 0;
     
    636638                                   MPFROM2SHORT(CMA_NEXT, CMA_ITEMORDER));
    637639    if (!(x % 500))
    638       DosSleep(1);
    639     else if (!(x % 50))
    640       DosSleep(1);
     640      DosSleep(1L);
     641    // else if (!(x % 50))
     642    //  DosSleep(0L);
    641643  } // while
    642644
     
    666668                                   MPFROM2SHORT(CMA_NEXT, CMA_ITEMORDER));
    667669    if (!(x % 500))
    668       DosSleep(1);
    669     else if (!(x % 50))
    670       DosSleep(1);
     670      DosSleep(1L);
     671    // else if (!(x % 50))
     672    //  DosSleep(0L);
    671673  } // while
    672674
     
    682684  }
    683685
     686  // 05 Aug 07 SHL fixme to know what sets reset
    684687  if (reset) {
     688    // Update flags for files that exist on both sides
    685689    for (x = 0; x < numS; x++) {
    686690
     691      // 05 Aug 07 SHL fixme to know if should clear first
    687692      if (!*pciSa[x]->pszFileName || !*pciDa[x]->pszFileName)
    688693        continue;
    689694
    690       pciSa[x]->flags |= CNRITEM_EXISTS;
     695      pciSa[x]->flags |= CNRITEM_EXISTS;        // File exists on both sides
    691696      pciDa[x]->flags |= CNRITEM_EXISTS;
    692697      if (pciSa[x]->cbFile + pciSa[x]->easize >
     
    732737      }
    733738      if (!(x % 500))
    734         DosSleep(1);
    735       else if (!(x % 50))
    736         DosSleep(1);
    737     }
    738   }
     739        DosSleep(1L);
     740      // else if (!(x % 50))
     741      //        DosSleep(0L);
     742    } // for
     743  } // if reset
    739744
    740745  switch (action) {
    741746  case IDM_SELECTIDENTICAL:
    742747    for (x = 0; x < numS; x++) {
    743       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
    744         if (*pciSa[x]->pszFileName &&
    745             pciSa[x]->flags & CNRITEM_EXISTS &&
    746             ~pciSa[x]->flags & CNRITEM_SMALLER &&
    747             ~pciSa[x]->flags & CNRITEM_LARGER &&
    748             ~pciSa[x]->flags & CNRITEM_NEWER &&
    749             ~pciSa[x]->flags & CNRITEM_OLDER) {
    750           if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    751             WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    752                        MPFROM2SHORT(TRUE, CRA_SELECTED));
    753           if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    754             WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    755                        MPFROM2SHORT(TRUE, CRA_SELECTED));
    756         }
    757         if (!(x % 500))
    758           DosSleep(1);
    759         else if (!(x % 50))
    760           DosSleep(1);
    761       }
    762     }
     748      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
     749          pciSa[x]->flags & CNRITEM_EXISTS &&
     750          ~pciSa[x]->flags & CNRITEM_SMALLER &&
     751          ~pciSa[x]->flags & CNRITEM_LARGER &&
     752          ~pciSa[x]->flags & CNRITEM_NEWER &&
     753          ~pciSa[x]->flags & CNRITEM_OLDER) {
     754        if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     755          WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     756                     MPFROM2SHORT(TRUE, CRA_SELECTED));
     757        if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     758          WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     759                     MPFROM2SHORT(TRUE, CRA_SELECTED));
     760      }
     761      if (!(x % 500))
     762        DosSleep(1L);
     763      // else if (!(x % 50))
     764      //        DosSleep(0L);
     765    } // for
    763766    break;
    764767
     
    766769    for (x = 0; x < numS; x++) {
    767770      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    768           *pciSa[x]->pszFileName &&
    769771          pciSa[x]->flags & CNRITEM_EXISTS &&
    770772          ~pciSa[x]->flags & CNRITEM_SMALLER &&
     
    778780      }
    779781      if (!(x % 500))
    780         DosSleep(1);
    781       else if (!(x % 50))
    782         DosSleep(1);
     782        DosSleep(1L);
     783      // else if (!(x % 50))
     784      //        DosSleep(0L);
    783785    }
    784786    break;
    785787
    786788  case IDM_SELECTSAMECONTENT:
    787     // fixme why?
    788789    for (x = 0; x < numS; x++) {
    789790      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    790           *pciSa[x]->pszFileName &&
    791           *pciDa[x]->pszFileName &&
    792           pciSa[x]->flags & CNRITEM_EXISTS &&
    793           pciDa[x]->flags & CNRITEM_EXISTS)
     791          pciSa[x]->flags & CNRITEM_EXISTS)
    794792      {
    795793        FILE *fp1 = NULL;
     
    801799        CHAR buf2[1024];
    802800        HAB hab = WinQueryAnchorBlock(hwndCnrS);
     801
     802        if (!*pciSa[x]->pszFileName ||
     803            !*pciDa[x]->pszFileName) {
     804          Runtime_Error(pszSrcFile, __LINE__,
     805                        "CNRITEM_EXISTS set with null file name for index %u", x);
     806          break;
     807        }
    803808
    804809        fp1 = _fsopen(pciSa[x]->pszFileName, "rb", SH_DENYNO);
     
    850855                        "error %d while comparing", compErrno);
    851856        }
     857
    852858        if (gotMatch) {
    853859          if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     
    860866      }
    861867      if (!(x % 500))
    862         DosSleep(1);
    863       else if (!(x % 50))
    864         DosSleep(1);
    865     }                                   // for records
     868        DosSleep(1L);
     869      // else if (!(x % 50))
     870      //        DosSleep(0L);
     871    } // for
    866872    break;
    867873
     
    869875    for (x = 0; x < numS; x++) {
    870876      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    871           *pciSa[x]->pszFileName &&
    872877          pciSa[x]->flags & CNRITEM_EXISTS) {
    873878        if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     
    879884      }
    880885      if (!(x % 500))
    881         DosSleep(1);
    882       else if (!(x % 50))
    883         DosSleep(1);
     886        DosSleep(1L);
     887      // else if (!(x % 50))
     888      //        DosSleep(0L);
    884889    }
    885890    break;
     
    888893    for (x = 0; x < numS; x++) {
    889894      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    890           *pciSa[x]->pszFileName &&
    891           ~pciSa[x]->flags & CNRITEM_EXISTS)
    892       {
    893         if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    894           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    895                      MPFROM2SHORT(TRUE, CRA_SELECTED));
    896       }
    897       else if (*pciDa[x]->pszFileName &&
    898                ~pciDa[x]->flags & CNRITEM_EXISTS) {
    899         if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     895          ~pciSa[x]->flags & CNRITEM_EXISTS) {
     896        if (*pciSa[x]->pszFileName) {
     897          if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED) {
     898            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     899                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     900          }
     901        }
     902        else if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED) {
    900903          WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    901904                     MPFROM2SHORT(TRUE, CRA_SELECTED));
     905        }
    902906      }
    903907      if (!(x % 500))
    904         DosSleep(1);
    905       else if (!(x % 50))
    906         DosSleep(1);
     908        DosSleep(1L);
     909      // else if (!(x % 50))
     910      //        DosSleep(0L);
    907911    }
    908912    break;
     
    910914  case IDM_SELECTBIGGER:
    911915    for (x = 0; x < numS; x++) {
    912       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    913           pciSa[x]->flags & CNRITEM_LARGER) {
    914         if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    915           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    916                      MPFROM2SHORT(TRUE, CRA_SELECTED));
    917       }
    918       else if (~pciDa[x]->rc.flRecordAttr & CRA_FILTERED &&
    919                *pciDa[x]->pszFileName &&
    920                pciDa[x]->flags & CNRITEM_LARGER) {
    921         if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    922           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    923                      MPFROM2SHORT(TRUE, CRA_SELECTED));
     916      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     917        if (pciSa[x]->flags & CNRITEM_LARGER) {
     918          if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     919            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     920                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     921        }
     922        else if (pciDa[x]->flags & CNRITEM_LARGER) {
     923          if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     924            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     925                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     926        }
    924927      }
    925928      if (!(x % 500))
    926         DosSleep(1);
    927       else if (!(x % 50))
    928         DosSleep(1);
     929        DosSleep(1L);
     930      // else if (!(x % 50))
     931      //        DosSleep(0L);
    929932    }
    930933    break;
     
    932935  case IDM_SELECTSMALLER:
    933936    for (x = 0; x < numS; x++) {
    934       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    935           *pciSa[x]->pszFileName &&
    936           pciSa[x]->flags & CNRITEM_SMALLER) {
    937         if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    938           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    939                      MPFROM2SHORT(TRUE, CRA_SELECTED));
    940       }
    941       else if (~pciDa[x]->rc.flRecordAttr & CRA_FILTERED &&
    942                *pciDa[x]->pszFileName &&
    943                pciDa[x]->flags & CNRITEM_SMALLER) {
    944         if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    945           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    946                      MPFROM2SHORT(TRUE, CRA_SELECTED));
     937      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     938        if (pciSa[x]->flags & CNRITEM_SMALLER) {
     939          if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     940            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     941                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     942        }
     943        else if (pciDa[x]->flags & CNRITEM_SMALLER) {
     944          if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     945            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     946                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     947        }
    947948      }
    948949      if (!(x % 500))
    949         DosSleep(1);
    950       else if (!(x % 50))
    951         DosSleep(1);
     950        DosSleep(1L);
     951      // else if (!(x % 50))
     952      //        DosSleep(0L);
    952953    }
    953954    break;
     
    955956  case IDM_SELECTNEWER:
    956957    for (x = 0; x < numS; x++) {
    957       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    958           *pciSa[x]->pszFileName &&
    959           pciSa[x]->flags & CNRITEM_NEWER) {
    960         if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    961           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    962                      MPFROM2SHORT(TRUE, CRA_SELECTED));
    963       }
    964       else if (~pciDa[x]->rc.flRecordAttr & CRA_FILTERED &&
    965                *pciDa[x]->pszFileName &&
    966                pciDa[x]->flags & CNRITEM_NEWER) {
    967         if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    968           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    969                      MPFROM2SHORT(TRUE, CRA_SELECTED));
     958      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     959        if (pciSa[x]->flags & CNRITEM_NEWER) {
     960          if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     961            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     962                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     963        }
     964        else if (pciDa[x]->flags & CNRITEM_NEWER) {
     965          if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     966            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     967                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     968        }
    970969      }
    971970      if (!(x % 500))
    972         DosSleep(1);
    973       else if (!(x % 50))
    974         DosSleep(1);
     971        DosSleep(1L);
     972      // else if (!(x % 50))
     973      //        DosSleep(0L);
    975974    }
    976975    break;
     
    978977  case IDM_SELECTOLDER:
    979978    for (x = 0; x < numS; x++) {
    980       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    981           *pciSa[x]->pszFileName &&
    982           pciSa[x]->flags & CNRITEM_OLDER) {
    983         if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    984           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    985                      MPFROM2SHORT(TRUE, CRA_SELECTED));
    986       }
    987       else if (~pciDa[x]->rc.flRecordAttr & CRA_FILTERED &&
    988                *pciDa[x]->pszFileName &&
    989                pciDa[x]->flags & CNRITEM_OLDER) {
    990         if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    991           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    992                      MPFROM2SHORT(TRUE, CRA_SELECTED));
     979      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     980        if (pciSa[x]->flags & CNRITEM_OLDER) {
     981          if (~pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     982            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     983                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     984        }
     985        else if (pciDa[x]->flags & CNRITEM_OLDER) {
     986          if (~pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     987            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     988                       MPFROM2SHORT(TRUE, CRA_SELECTED));
     989        }
    993990      }
    994991      if (!(x % 500))
    995         DosSleep(1);
    996       else if (!(x % 50))
    997         DosSleep(1);
     992        DosSleep(1L);
     993      // else if (!(x % 50))
     994      //        DosSleep(0L);
    998995    }
    999996    break;
     
    1002999    for (x = 0; x < numS; x++) {
    10031000      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1004           *pciSa[x]->pszFileName &&
    10051001          pciSa[x]->flags & CNRITEM_EXISTS) {
    10061002        if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     
    10121008      }
    10131009      if (!(x % 500))
    1014         DosSleep(1);
    1015       else if (!(x % 50))
    1016         DosSleep(1);
     1010        DosSleep(1L);
     1011      // else if (!(x % 50))
     1012      //        DosSleep(0L);
    10171013    }
    10181014    break;
     
    10201016  case IDM_DESELECTONE:
    10211017    for (x = 0; x < numS; x++) {
    1022       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1023           *pciSa[x]->pszFileName &&
    1024           ~pciSa[x]->flags & CNRITEM_EXISTS) {
    1025         if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    1026           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    1027                      MPFROM2SHORT(FALSE, CRA_SELECTED));
    1028       }
    1029       else if (*pciDa[x]->pszFileName &&
    1030                ~pciDa[x]->flags & CNRITEM_EXISTS) {
    1031         if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    1032           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    1033                      MPFROM2SHORT(FALSE, CRA_SELECTED));
     1018      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     1019        if (~pciSa[x]->flags & CNRITEM_EXISTS) {
     1020        if (*pciSa[x]->pszFileName) {
     1021          if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     1022            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     1023                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1024        }
     1025        else if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     1026            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     1027                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1028        }
    10341029      }
    10351030      if (!(x % 500))
    1036         DosSleep(1);
    1037       else if (!(x % 50))
    1038         DosSleep(1);
     1031        DosSleep(1L);
     1032      // else if (!(x % 50))
     1033      //        DosSleep(0L);
    10391034    }
    10401035    break;
     
    10421037  case IDM_DESELECTBIGGER:
    10431038    for (x = 0; x < numS; x++) {
    1044       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1045           *pciSa[x]->pszFileName &&
    1046           pciSa[x]->flags & CNRITEM_LARGER) {
    1047         if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    1048           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    1049                      MPFROM2SHORT(FALSE, CRA_SELECTED));
    1050       }
    1051       else if (~pciDa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1052                *pciDa[x]->pszFileName &&
    1053                pciDa[x]->flags & CNRITEM_LARGER) {
    1054         if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    1055           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    1056                      MPFROM2SHORT(FALSE, CRA_SELECTED));
     1039      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     1040        if (pciSa[x]->flags & CNRITEM_LARGER) {
     1041          if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     1042            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     1043                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1044        }
     1045        else if (pciDa[x]->flags & CNRITEM_LARGER) {
     1046          if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     1047            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     1048                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1049        }
    10571050      }
    10581051      if (!(x % 500))
    1059         DosSleep(1);
    1060       else if (!(x % 50))
    1061         DosSleep(1);
     1052        DosSleep(1L);
     1053      // else if (!(x % 50))
     1054      //        DosSleep(0L);
    10621055    }
    10631056    break;
     
    10651058  case IDM_DESELECTSMALLER:
    10661059    for (x = 0; x < numS; x++) {
    1067       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1068           *pciSa[x]->pszFileName &&
    1069           pciSa[x]->flags & CNRITEM_SMALLER) {
    1070         if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    1071           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    1072                      MPFROM2SHORT(FALSE, CRA_SELECTED));
    1073       }
    1074       else if (~pciDa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1075                *pciDa[x]->pszFileName &&
    1076                pciDa[x]->flags & CNRITEM_SMALLER) {
    1077         if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    1078           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    1079                      MPFROM2SHORT(FALSE, CRA_SELECTED));
     1060      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     1061        if (pciSa[x]->flags & CNRITEM_SMALLER) {
     1062          if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     1063            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     1064                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1065        }
     1066        else if (pciDa[x]->flags & CNRITEM_SMALLER) {
     1067          if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     1068            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     1069                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1070        }
    10801071      }
    10811072      if (!(x % 500))
    1082         DosSleep(1);
    1083       else if (!(x % 50))
    1084         DosSleep(1);
     1073        DosSleep(1L);
     1074      // else if (!(x % 50))
     1075      //        DosSleep(0L);
    10851076    }
    10861077    break;
     
    10881079  case IDM_DESELECTNEWER:
    10891080    for (x = 0; x < numS; x++) {
    1090       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1091           *pciSa[x]->pszFileName &&
    1092           pciSa[x]->flags & CNRITEM_NEWER) {
    1093         if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    1094           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    1095                      MPFROM2SHORT(FALSE, CRA_SELECTED));
    1096       }
    1097       else if (~pciDa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1098                *pciDa[x]->pszFileName &&
    1099                pciDa[x]->flags & CNRITEM_NEWER) {
    1100         if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    1101           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    1102                      MPFROM2SHORT(FALSE, CRA_SELECTED));
     1081      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     1082        if (pciSa[x]->flags & CNRITEM_NEWER) {
     1083          if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     1084            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     1085                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1086        }
     1087        else if (pciDa[x]->flags & CNRITEM_NEWER) {
     1088          if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     1089            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     1090                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1091        }
    11031092      }
    11041093      if (!(x % 500))
    1105         DosSleep(1);
    1106       else if (!(x % 50))
    1107         DosSleep(1);
     1094        DosSleep(1L);
     1095      // else if (!(x % 50))
     1096      //        DosSleep(0L);
    11081097    }
    11091098    break;
     
    11111100  case IDM_DESELECTOLDER:
    11121101    for (x = 0; x < numS; x++) {
    1113       if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1114           *pciSa[x]->pszFileName &&
    1115           pciSa[x]->flags & CNRITEM_OLDER) {
    1116         if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
    1117           WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
    1118                      MPFROM2SHORT(FALSE, CRA_SELECTED));
    1119       }
    1120       else if (~pciDa[x]->rc.flRecordAttr & CRA_FILTERED &&
    1121                *pciDa[x]->pszFileName &&
    1122                pciDa[x]->flags & CNRITEM_OLDER) {
    1123         if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
    1124           WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
    1125                      MPFROM2SHORT(FALSE, CRA_SELECTED));
     1102      if (~pciSa[x]->rc.flRecordAttr & CRA_FILTERED) {
     1103        if (pciSa[x]->flags & CNRITEM_OLDER) {
     1104          if (pciSa[x]->rc.flRecordAttr & CRA_SELECTED)
     1105            WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciSa[x]),
     1106                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1107        }
     1108        else if (pciDa[x]->flags & CNRITEM_OLDER) {
     1109          if (pciDa[x]->rc.flRecordAttr & CRA_SELECTED)
     1110            WinSendMsg(hwndCnrD, CM_SETRECORDEMPHASIS, MPFROMP(pciDa[x]),
     1111                       MPFROM2SHORT(FALSE, CRA_SELECTED));
     1112        }
    11261113      }
    11271114      if (!(x % 500))
    1128         DosSleep(1);
    1129       else if (!(x % 50))
    1130         DosSleep(1);
     1115        DosSleep(1L);
     1116      // else if (!(x % 50))
     1117      //        DosSleep(0L);
    11311118    }
    11321119    break;
Note: See TracChangeset for help on using the changeset viewer.