Changeset 919 for trunk/dll/comp.c
- Timestamp:
- Jan 12, 2008, 10:43:34 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/comp.c
r917 r919 43 43 05 Jan 08 SHL Use WM_TIMER for progress messaging 44 44 05 Jan 08 SHL Use ITIMER_DESC for hogging control 45 12 Jan 08 SHL Correct select count display regression 45 46 46 47 ***********************************************************************/ … … 143 144 //=== StartSnap() Write directory tree to snapshot file === 144 145 145 static VOID StartSnap(VOID * dummy)146 static VOID StartSnap(VOID *pargs) 146 147 { 147 SNAPSTUFF *sf = (SNAPSTUFF *) dummy;148 SNAPSTUFF *sf = (SNAPSTUFF *)pargs; 148 149 FILE *fp; 149 150 CHAR *p; … … 175 176 //=== CompareFilesThread() Compare files and update container select flags === 176 177 177 static VOID CompareFilesThread(VOID * 178 static VOID CompareFilesThread(VOID *args) 178 179 { 179 180 FCOMPARE fc; … … 187 188 188 189 if (args) { 189 fc = *(FCOMPARE *) 190 fc = *(FCOMPARE *)args; 190 191 hab2 = WinInitialize(0); 191 192 if (hab2) { … … 317 318 else { 318 319 WinSetWindowPtr(hwnd, QWL_USER, mp2); 319 fc = (FCOMPARE *) 320 fc = (FCOMPARE *)mp2; 320 321 fc->hwndReport = hwnd; 321 322 fc->hwndList = WinWindowFromID(hwnd, FCMP_LISTBOX); … … 334 335 break; 335 336 } 336 if (_beginthread(CompareFilesThread, NULL, 65536, (PVOID) 337 if (_beginthread(CompareFilesThread, NULL, 65536, (PVOID)fc) == -1) { 337 338 Runtime_Error(pszSrcFile, __LINE__, 338 339 GetPString(IDS_COULDNTSTARTTHREADTEXT)); … … 348 349 case UM_SETDIR: 349 350 PaintRecessedWindow(WinWindowFromID(hwnd, FCMP_HELP), 350 (HPS) 351 (HPS)0, FALSE, TRUE); 351 352 return 0; 352 353 … … 676 677 //=== SelectCnrsThread() Update container selection flags thread === 677 678 678 static VOID SelectCnrsThread(VOID * 679 static VOID SelectCnrsThread(VOID *args) 679 680 { 680 COMPARE *cmp = (COMPARE *) 681 COMPARE *cmp = (COMPARE *)args; 681 682 HAB hab; 682 683 HMQ hmq; … … 832 833 static int CompNames(const void *n1, const void *n2) 833 834 { 834 FILELIST *fl1 = *(FILELIST **) 835 FILELIST *fl2 = *(FILELIST **) 835 FILELIST *fl1 = *(FILELIST **)n1; 836 FILELIST *fl2 = *(FILELIST **)n2; 836 837 837 838 return stricmp(fl1->fname, fl2->fname); … … 842 843 static VOID FillCnrsThread(VOID *args) 843 844 { 844 COMPARE *cmp = (COMPARE *) 845 COMPARE *cmp = (COMPARE *)args; 845 846 HAB hab; 846 847 HMQ hmq; … … 875 876 UINT l; 876 877 UINT r; 877 UINT cntr;878 // UINT cntr; 878 879 FILELIST **filesl = NULL; 879 880 FILELIST **filesr = NULL; 880 // UINT numfilesl = 0; // 08 Jan 08 SHL fixme881 // UINT numfilesr = 0;882 881 UINT numallocl = 0; 883 882 UINT numallocr = 0; … … 887 886 UINT recsNeeded; 888 887 UINT recsGotten; 889 UINT filesSeenL;890 UINT filesSeenR;891 888 PCNRITEM pcilFirst; 892 889 PCNRITEM pcirFirst; … … 924 921 FillDirList(cmp->leftdir, lenl, cmp->includesubdirs, 925 922 &filesl, &cmp->cmp->totalleft, &numallocl); 926 // numfilesl = cmp->cmp->totalleft; // 08 Jan 08 SHL fixme927 923 928 924 if (filesl) … … 939 935 FillDirList(cmp->rightdir, lenr, cmp->includesubdirs, 940 936 &filesr, &cmp->cmp->totalright, &numallocr); 941 // numfilesr = cmp->cmp->totalright;942 937 } 943 938 else { … … 1108 1103 1109 1104 // Now insert records into the containers 1110 cntr = 0;1111 l = r = 0;1112 1105 if (recsNeeded) { 1113 1106 pcilFirst = WinSendMsg(hwndLeft, … … 1137 1130 // DbgMsg(pszSrcFile, __LINE__, "FillCnrsThread filling"); 1138 1131 1132 l = 0; 1133 r = 0; 1139 1134 pcil = pcilFirst; 1140 1135 pcir = pcirFirst; 1141 pcilLast = 0;1142 pcirLast = 0;1136 pcilLast = NULL; 1137 pcirLast = NULL; 1143 1138 1144 1139 recsGotten = 0; 1145 filesSeenL= 0;1146 filesSeenR= 0;1140 cmp->cmp->totalleft = 0; 1141 cmp->cmp->totalright = 0; 1147 1142 1148 1143 while ((filesl && filesl[l]) || (filesr && filesr[r])) { 1149 1144 1150 // 03 Jan 08 SHL fixme to have user friendly message1145 // 12 Jan 08 SHL fixme to have message in string table 1151 1146 if (!pcil) { 1152 Runtime_Error(pszSrcFile, __LINE__, " pcil short %u/%u",1153 recs Gotten, recsNeeded);1147 Runtime_Error(pszSrcFile, __LINE__, "Insufficient memory or %u items (%u)", 1148 recsNeeded, recsGotten); 1154 1149 break; 1155 1150 } 1156 1151 1157 // 03 Jan 08 SHL fixme to have user friendly message1152 // 12 Jan 08 SHL fixme to have message in string table 1158 1153 if (!pcir) { 1159 Runtime_Error(pszSrcFile, __LINE__, " pcir short %u/%u",1160 recs Gotten, recsNeeded);1154 Runtime_Error(pszSrcFile, __LINE__, "Insufficient memory or %u items (%u)", 1155 recsNeeded, recsGotten); 1161 1156 break; 1162 1157 } 1163 1158 recsGotten++; 1164 1159 pcir->hwndCnr = hwndRight; 1165 pcir->rc.hptrIcon = (HPOINTER) 1160 pcir->rc.hptrIcon = (HPOINTER)0; 1166 1161 pcil->hwndCnr = hwndLeft; 1167 pcil->rc.hptrIcon = (HPOINTER) 1162 pcil->rc.hptrIcon = (HPOINTER)0; 1168 1163 1169 1164 if (filesl && filesl[l]) { … … 1178 1173 if (x <= 0) { 1179 1174 // File appears on left side 1180 filesSeenL++; 1181 cmp->cmp->totalleft = filesSeenL; 1175 cmp->cmp->totalleft++; 1182 1176 BldFullPathName(szBuf, cmp->leftdir, filesl[l]->fname); 1183 1177 pcil->pszFileName = xstrdup(szBuf, pszSrcFile, __LINE__); … … 1186 1180 pcil->pszDispAttr = FileAttrToString(pcil->attrFile); 1187 1181 pcil->cbFile = filesl[l]->cbFile; 1182 // 12 Jan 08 SHL fixme to used cached size here too 1183 CommaFmtULL(szBuf, sizeof(szBuf), pcil->cbFile, ' '); 1184 pcil->pszFmtFileSize = xstrdup(szBuf, pszSrcFile, __LINE__); 1188 1185 pcil->easize = filesl[l]->easize; 1189 1186 pcil->date.day = filesl[l]->date.day; … … 1206 1203 pcil->crtime.hours = filesl[l]->crtime.hours; 1207 1204 if (*cmp->dcd.mask.szMask) { 1208 if (!Filter((PMINIRECORDCORE) 1205 if (!Filter((PMINIRECORDCORE)pcil, (PVOID)&cmp->dcd.mask)) { 1209 1206 pcil->rc.flRecordAttr |= CRA_FILTERED; 1210 1207 pcir->rc.flRecordAttr |= CRA_FILTERED; … … 1215 1212 if (x >= 0) { 1216 1213 // File appears on right side 1217 filesSeenR++; 1218 cmp->cmp->totalright = filesSeenR; 1214 cmp->cmp->totalright++; 1219 1215 BldFullPathName(szBuf, cmp->rightdir, filesr[r]->fname); 1220 1216 pcir->pszFileName = xstrdup(szBuf, pszSrcFile, __LINE__); // 31 Jul 07 SHL … … 1224 1220 pcir->pszDispAttr = FileAttrToString(pcir->attrFile); 1225 1221 pcir->cbFile = filesr[r]->cbFile; 1222 // 12 Jan 08 SHL fixme to used cached size here too 1223 CommaFmtULL(szBuf, sizeof(szBuf), pcir->cbFile, ' '); 1224 pcir->pszFmtFileSize = xstrdup(szBuf, pszSrcFile, __LINE__); 1226 1225 pcir->easize = filesr[r]->easize; 1227 1226 pcir->date.day = filesr[r]->date.day; … … 1326 1325 } // if on both sides 1327 1326 1328 if (x <= 0) { 1329 free(filesl[l]); 1330 l++; 1331 } 1332 1333 if (x >= 0) { 1334 free(filesr[r]); 1335 r++; 1336 } 1327 if (x <= 0) 1328 free(filesl[l++]); // Done with item on left 1329 1330 if (x >= 0) 1331 free(filesr[r++]); // Done with item on right 1337 1332 1338 1333 // Ensure empty buffers point somewhere … … 1368 1363 pcilLast = pcil; 1369 1364 pcirLast = pcir; 1370 pcil = (PCNRITEM) 1371 pcir = (PCNRITEM) 1365 pcil = (PCNRITEM)pcil->rc.preccNextRecord; 1366 pcir = (PCNRITEM)pcir->rc.preccNextRecord; 1372 1367 1373 1368 } // while filling left or right … … 1375 1370 // If stopped early CM_ALLOCATERECORD partially failed 1376 1371 // Free up container records we did not use on other side 1377 // Free up filesl/filer entries we skipped1372 // Free up items we did not insert in container 1378 1373 if (recsGotten < recsNeeded) { 1379 1374 if (pcil) { 1380 pcilLast->rc.preccNextRecord = NULL; 1375 if (pcilLast) 1376 pcilLast->rc.preccNextRecord = NULL; 1377 else 1378 pcilFirst = NULL; 1381 1379 FreeCnrItemList(hwndLeft, pcil); 1382 1380 } 1383 1381 if (filesl) { 1384 while (filesl[l]) {1382 for(; filesl[l]; l++) 1385 1383 free(filesl[l]); 1386 l++;1387 }1388 1384 } 1389 1385 if (pcir) { 1390 pcirLast->rc.preccNextRecord = NULL; 1386 if (pcirLast) 1387 pcirLast->rc.preccNextRecord = NULL; 1388 else 1389 pcirFirst = NULL; 1391 1390 FreeCnrItemList(hwndRight, pcir); 1392 1391 } 1393 1392 if (filesr) { 1394 while (filesr[r]) {1393 for (; filesr[r]; r++) 1395 1394 free(filesr[r]); 1396 r++;1397 }1398 1395 } 1399 1396 // Reduce count to match what is in containers … … 1414 1411 memset(&ri, 0, sizeof(RECORDINSERT)); 1415 1412 ri.cb = sizeof(RECORDINSERT); 1416 ri.pRecordOrder = (PRECORDCORE) 1417 ri.pRecordParent = (PRECORDCORE) 1418 ri.zOrder = (ULONG) 1413 ri.pRecordOrder = (PRECORDCORE)CMA_END; 1414 ri.pRecordParent = (PRECORDCORE)NULL; 1415 ri.zOrder = (ULONG)CMA_TOP; 1419 1416 ri.cRecordsInsert = recsNeeded; 1420 1417 ri.fInvalidateRecord = FALSE; 1418 1421 1419 if (!WinSendMsg(hwndLeft, CM_INSERTRECORD, 1422 1420 MPFROMP(pcilFirst), MPFROMP(&ri))) { 1423 1421 Win_Error(hwndLeft, cmp->hwnd, pszSrcFile, __LINE__, "CM_INSERTRECORD"); 1424 1422 FreeCnrItemList(hwndLeft, pcilFirst); 1425 // numfilesl = 0; // 08 Jan 08 SHL fixme1426 1423 cmp->cmp->totalleft = 0; 1427 1424 } … … 1430 1427 memset(&ri, 0, sizeof(RECORDINSERT)); 1431 1428 ri.cb = sizeof(RECORDINSERT); 1432 ri.pRecordOrder = (PRECORDCORE) 1433 ri.pRecordParent = (PRECORDCORE) 1434 ri.zOrder = (ULONG) 1429 ri.pRecordOrder = (PRECORDCORE)CMA_END; 1430 ri.pRecordParent = (PRECORDCORE)NULL; 1431 ri.zOrder = (ULONG)CMA_TOP; 1435 1432 ri.cRecordsInsert = recsNeeded; 1436 1433 ri.fInvalidateRecord = FALSE; … … 1441 1438 RemoveCnrItems(hwndLeft, NULL, 0, CMA_FREE | CMA_INVALIDATE); 1442 1439 FreeCnrItemList(hwndRight, pcirFirst); 1443 // numfilesr = 0;1444 1440 cmp->cmp->totalright = 0; 1445 1441 } … … 1497 1493 switch (msg) { 1498 1494 case WM_INITDLG: 1499 cmp = (COMPARE *) 1495 cmp = (COMPARE *)mp2; 1500 1496 if (!cmp) { 1501 1497 Runtime_Error2(pszSrcFile, __LINE__, IDS_NODATATEXT); … … 1507 1503 WinDefDlgProc(hwnd, WM_SETICON, MPFROMLONG(hptr), MPVOID); 1508 1504 cmp->hwnd = hwnd; 1509 WinSetWindowPtr(hwnd, QWL_USER, (PVOID) 1505 WinSetWindowPtr(hwnd, QWL_USER, (PVOID)cmp); 1510 1506 SetCnrCols(hwndLeft, TRUE); 1511 1507 SetCnrCols(hwndRight, TRUE); … … 1518 1514 0 1519 1515 }; 1520 INT x; 1521 1516 UINT x; 1522 1517 for (x = 0; ids[x]; x++) 1523 1518 SetPresParams(WinWindowFromID(hwnd, ids[x]), … … 1589 1584 sz - (szbx + 6), 20, SWP_MOVE | SWP_SIZE); 1590 1585 PaintRecessedWindow(WinWindowFromID(hwnd, COMP_TOTALLEFT), 1591 (HPS) 1586 (HPS)0, FALSE, FALSE); 1592 1587 PaintRecessedWindow(WinWindowFromID(hwnd, COMP_SELLEFT), 1593 (HPS) 1588 (HPS)0, FALSE, FALSE); 1594 1589 PaintRecessedWindow(WinWindowFromID(hwnd, COMP_TOTALRIGHT), 1595 (HPS) 1590 (HPS)0, FALSE, FALSE); 1596 1591 PaintRecessedWindow(WinWindowFromID(hwnd, COMP_SELRIGHT), 1597 (HPS) 1598 PaintRecessedWindow(hwndLeft, (HPS) 1592 (HPS)0, FALSE, FALSE); 1593 PaintRecessedWindow(hwndLeft, (HPS)0, 1599 1594 (hwndActive == hwndLeft), TRUE); 1600 PaintRecessedWindow(hwndRight, (HPS) 1595 PaintRecessedWindow(hwndRight, (HPS)0, 1601 1596 (hwndActive == hwndRight), TRUE); 1602 1597 } … … 1614 1609 1615 1610 cmp = INSTDATA(hwnd); 1616 if (cmp) { 1611 if (!cmp) 1612 Runtime_Error2(pszSrcFile, __LINE__, IDS_NODATATEXT); 1613 else { 1617 1614 cmp->dcd.size = sizeof(DIRCNRDATA); 1618 1615 cmp->dcd.type = DIR_FRAME; … … 1671 1668 pcown = (PCNRDRAWITEMINFO)pown->hItem; 1672 1669 if (pcown) { 1673 pci = (PCNRITEM) 1670 pci = (PCNRITEM)pcown->pRecord; 1674 1671 // 01 Aug 07 SHL if field null or blank, we draw 1675 1672 // fixme to know why - probably to optimize and bypass draw? … … 1733 1730 sprintf(s, " %d", cmp->selright); 1734 1731 WinSetDlgItemText(hwnd, COMP_SELRIGHT, s); 1732 // 12 Jan 08 SHL fixme to have SetEnables(COMPARE* pcmp, BOOL fEnable) 1733 // to replace duplicated code here and elsewhere 1735 1734 WinEnableWindow(WinWindowFromID(hwnd, DID_OK), TRUE); 1736 1735 WinEnableWindow(WinWindowFromID(hwnd, DID_CANCEL), TRUE); … … 1764 1763 } 1765 1764 WinEnableWindow(WinWindowFromID(hwnd, COMP_INCLUDESUBDIRS), TRUE); 1766 if (*cmp->dcd.mask.szMask) 1767 WinSetDlgItemText(hwnd, COMP_NOTE, 1768 GetPString(IDS_COMPREADYFILTEREDTEXT)); 1765 WinEnableWindow(WinWindowFromID(hwnd, COMP_HIDENOTSELECTED), TRUE); 1766 if (*cmp->dcd.mask.szMask) { 1767 sprintf(s, 1768 GetPString(IDS_COMPREADYFILTEREDTEXT), 1769 cmp->dcd.mask.szMask); 1770 WinSetDlgItemText(hwnd, COMP_NOTE, s); 1771 } 1769 1772 else 1770 1773 WinSetDlgItemText(hwnd, COMP_NOTE, GetPString(IDS_COMPREADYTEXT)); … … 1789 1792 cmp = INSTDATA(hwnd); 1790 1793 if (cmp) { 1791 if ((HWND) 1794 if ((HWND)mp2 == cmp->dcd.hwndLastMenu) { 1792 1795 MarkAll(hwndLeft, TRUE, FALSE, TRUE); 1793 1796 MarkAll(hwndRight, TRUE, FALSE, TRUE); 1794 1797 WinDestroyWindow(cmp->dcd.hwndLastMenu); 1795 cmp->dcd.hwndLastMenu = (HWND) 1798 cmp->dcd.hwndLastMenu = (HWND)0; 1796 1799 } 1797 1800 } … … 1824 1827 case CN_KILLFOCUS: 1825 1828 PaintRecessedWindow(WinWindowFromID(hwnd, SHORT1FROMMP(mp1)), 1826 (HPS) 1829 (HPS)0, FALSE, TRUE); 1827 1830 break; 1828 1831 1829 1832 case CN_SETFOCUS: 1830 1833 PaintRecessedWindow(WinWindowFromID(hwnd, SHORT1FROMMP(mp1)), 1831 (HPS) 1834 (HPS)0, TRUE, TRUE); 1832 1835 break; 1833 1836 … … 1835 1838 if (mp2) { 1836 1839 1837 PCNRITEM pci = (PCNRITEM) ((PNOTIFYRECORDENTER)mp2)->pRecord;1840 PCNRITEM pci = (PCNRITEM)((PNOTIFYRECORDENTER)mp2)->pRecord; 1838 1841 HWND hwndCnr = WinWindowFromID(hwnd, SHORT1FROMMP(mp1)); 1839 1842 … … 1855 1858 WinSendMsg(hwndCnr, CM_SETRECORDEMPHASIS, 1856 1859 MPFROMP(pci), 1857 MPFROM2SHORT(FALSE, CRA_INUSE |1858 ((fUnHilite)? CRA_SELECTED : 0)));1860 MPFROM2SHORT(FALSE, 1861 CRA_INUSE | (fUnHilite ? CRA_SELECTED : 0))); 1859 1862 } 1860 1863 } … … 1864 1867 cmp = INSTDATA(hwnd); 1865 1868 if (cmp) { 1866 1867 PCNRITEM pci = (PCNRITEM) mp2; 1869 PCNRITEM pci = (PCNRITEM)mp2; 1868 1870 USHORT id = COMP_CNRMENU; 1869 1871 1870 1872 if (cmp->dcd.hwndLastMenu) 1871 1873 WinDestroyWindow(cmp->dcd.hwndLastMenu); 1872 cmp->dcd.hwndLastMenu = (HWND) 1874 cmp->dcd.hwndLastMenu = (HWND)0; 1873 1875 cmp->hwndCalling = WinWindowFromID(hwnd, SHORT1FROMMP(mp1)); 1874 1876 if (pci) { … … 1903 1905 break; 1904 1906 DoFileDrag(WinWindowFromID(hwnd, SHORT1FROMMP(mp1)), 1905 (HWND) 1907 (HWND)0, mp2, NULL, NULL, TRUE); 1906 1908 break; 1907 1909 … … 1915 1917 case CN_EMPHASIS: 1916 1918 { 1917 PNOTIFYRECORDEMPHASIS pre = mp2; 1918 PCNRITEM pci; 1919 1920 if (pre->fEmphasisMask & CRA_SELECTED) { 1921 pci = (PCNRITEM) pre->pRecord; 1919 PNOTIFYRECORDEMPHASIS pnre = mp2; 1920 if (pnre->fEmphasisMask & CRA_SELECTED) { 1921 PCNRITEM pci = (PCNRITEM)pnre->pRecord; 1922 1922 if (pci) { 1923 if (!pci || !*pci->pszFileName) { 1923 if (!*pci->pszFileName) { 1924 // 12 Jan 08 SHL fixme to know if select counts need update? 1924 1925 if (pci->rc.flRecordAttr & CRA_SELECTED) 1925 1926 WinSendDlgItemMsg(hwnd, SHORT1FROMMP(mp1), … … 1929 1930 } 1930 1931 else { 1931 1932 1932 cmp = INSTDATA(hwnd); 1933 if (pci->rc.flRecordAttr & CRA_SELECTED) { 1934 if (SHORT1FROMMP(mp1) == COMP_LEFTDIR) 1935 cmp->selleft++; 1936 else 1937 cmp->selright++; 1933 if (SHORT1FROMMP(mp1) == COMP_LEFTDIR) { 1934 cmp->selleft += 1935 pci->rc.flRecordAttr & CRA_SELECTED ? 1 : -1; 1936 // If window not enabled WM_TIMER will update display 1937 if (WinIsWindowEnabled(hwndLeft)) { 1938 sprintf(s, " %d", cmp->selleft); 1939 WinSetDlgItemText(hwnd, COMP_SELLEFT, s); 1940 } 1941 } 1942 else if (SHORT1FROMMP(mp1) == COMP_RIGHTDIR) { 1943 cmp->selright += 1944 pci->rc.flRecordAttr & CRA_SELECTED ? 1 : -1; 1945 if (WinIsWindowEnabled(hwndRight)) { 1946 sprintf(s, " %d", cmp->selright); 1947 WinSetDlgItemText(hwnd, COMP_SELRIGHT, s); 1948 } 1938 1949 } 1939 1950 else { 1940 if (SHORT1FROMMP(mp1) == COMP_LEFTDIR) { 1941 if (cmp->selleft) 1942 cmp->selleft--; 1943 } 1944 else { 1945 if (cmp->selright) 1946 cmp->selright--; 1947 } 1951 Runtime_Error(pszSrcFile, __LINE__, 1952 "mp1 %u unexpected", SHORT1FROMMP(mp1)); 1948 1953 } 1949 1954 } … … 1961 1966 if (pns->fScroll & CMA_VERTICAL) { 1962 1967 cmp->forcescroll = TRUE; 1963 WinSendDlgItemMsg(hwnd, (SHORT1FROMMP(mp1) == COMP_LEFTDIR) ? 1964 COMP_RIGHTDIR : COMP_LEFTDIR, 1965 CM_SCROLLWINDOW, MPFROMSHORT(CMA_VERTICAL), 1968 // Scroll other window to match 1969 WinSendDlgItemMsg(hwnd, 1970 SHORT1FROMMP(mp1) == COMP_LEFTDIR ? 1971 COMP_RIGHTDIR : COMP_LEFTDIR, 1972 CM_SCROLLWINDOW, 1973 MPFROMSHORT(CMA_VERTICAL), 1966 1974 MPFROMLONG(pns->lScrollInc)); 1967 1975 cmp->forcescroll = FALSE; … … 1969 1977 } 1970 1978 break; 1971 } 1972 break; // COMP_ RIGHTDIR1973 } 1979 } // switch COMP_LEFTDIR mp1 1980 break; // COMP_LEFTDIR / COMP_RIGHTDIR 1981 } // switch WM_CONTROL mp1 1974 1982 return 0; // WM_CONTROL 1975 1983 … … 1977 1985 cmp = INSTDATA(hwnd); 1978 1986 if (cmp) { 1979 1980 1987 COMPARE *forthread; 1981 1988 CNRINFO cnri; 1982 1983 1989 cmp->includesubdirs = WinQueryButtonCheckstate(hwnd, 1984 1990 COMP_INCLUDESUBDIRS); … … 2002 2008 *forthread = *cmp; 2003 2009 forthread->cmp = cmp; 2004 if (_beginthread(FillCnrsThread, NULL, 122880, (PVOID) 2010 if (_beginthread(FillCnrsThread, NULL, 122880, (PVOID)forthread) == 2005 2011 -1) { 2006 2012 Runtime_Error(pszSrcFile, __LINE__, … … 2037 2043 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTSMALLER), FALSE); 2038 2044 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTALL), FALSE); 2039 WinEnableWindow(WinWindowFromID(hwnd, COMP_INCLUDESUBDIRS), FALSE);2040 2045 WinEnableWindow(WinWindowFromID(hwnd, COMP_SETDIRS), FALSE); 2041 2046 WinEnableWindow(WinWindowFromID(hwnd, COMP_DELETELEFT), FALSE); … … 2045 2050 WinEnableWindow(WinWindowFromID(hwnd, COMP_COPYRIGHT), FALSE); 2046 2051 WinEnableWindow(WinWindowFromID(hwnd, COMP_MOVERIGHT), FALSE); 2047 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAMECONTENT), 2048 FALSE); 2052 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAMECONTENT), FALSE); 2049 2053 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTIDENTICAL), FALSE); 2050 2054 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAME), FALSE); 2051 2055 WinEnableWindow(WinWindowFromID(hwnd, IDM_INVERT), FALSE); 2052 2056 WinEnableWindow(WinWindowFromID(hwnd, COMP_FILTER), FALSE); 2057 WinEnableWindow(WinWindowFromID(hwnd, COMP_INCLUDESUBDIRS), FALSE); 2058 WinEnableWindow(WinWindowFromID(hwnd, COMP_HIDENOTSELECTED), FALSE); 2053 2059 } 2054 2060 } … … 2061 2067 if (mp1) { 2062 2068 DosEnterCritSec(); 2063 SetMask((CHAR *) 2069 SetMask((CHAR *)mp1, &cmp->dcd.mask); 2064 2070 DosExitCritSec(); 2065 2071 } 2066 cmp->dcd.suspendview = 1; 2072 WinSetDlgItemText(hwnd, COMP_NOTE, 2073 GetPString(IDS_COMPHOLDFILTERINGTEXT)); 2074 // cmp->dcd.suspendview = 1; // 12 Jan 08 SHL appears not to be used here 2075 priority_idle(); // Don't hog resources 2067 2076 WinSendMsg(hwndLeft, CM_FILTER, MPFROMP(Filter), 2068 2077 MPFROMP(&cmp->dcd.mask)); 2069 2078 WinSendMsg(hwndRight, CM_FILTER, MPFROMP(Filter), 2070 2079 MPFROMP(&cmp->dcd.mask)); 2071 cmp->dcd.suspendview = 0; 2072 if (*cmp->dcd.mask.szMask) 2073 WinSetDlgItemText(hwnd, COMP_NOTE, 2074 GetPString(IDS_COMPREADYFILTEREDTEXT)); 2080 priority_normal(); 2081 // cmp->dcd.suspendview = 0; // 12 Jan 08 SHL appears not to be used here 2082 if (*cmp->dcd.mask.szMask) { 2083 sprintf(s, 2084 GetPString(IDS_COMPREADYFILTEREDTEXT), 2085 cmp->dcd.mask.szMask); 2086 WinSetDlgItemText(hwnd, COMP_NOTE, s); 2087 } 2075 2088 else 2076 2089 WinSetDlgItemText(hwnd, COMP_NOTE, GetPString(IDS_COMPREADYTEXT)); … … 2084 2097 COMP_HIDENOTSELECTED); 2085 2098 2086 cmp->dcd.suspendview = 1;2099 // cmp->dcd.suspendview = 1; // 12 Jan 08 SHL appears not to be used here 2087 2100 if (wantHide) { 2088 2101 BOOL needRefresh = FALSE; … … 2094 2107 MPFROM2SHORT(CMA_FIRST, CMA_ITEMORDER)); 2095 2108 2096 while (pcil && (INT) pcil != -1 && pcir && (INT)pcir != -1) {2109 while (pcil && (INT)pcil != -1 && pcir && (INT)pcir != -1) { 2097 2110 if (~pcil->rc.flRecordAttr & CRA_SELECTED && 2098 2111 ~pcir->rc.flRecordAttr & CRA_SELECTED) { … … 2119 2132 MPFROMP(&cmp->dcd.mask)); 2120 2133 } 2121 cmp->dcd.suspendview = 0; 2122 if (*cmp->dcd.mask.szMask) 2123 WinSetDlgItemText(hwnd, COMP_NOTE, 2124 GetPString(IDS_COMPREADYFILTEREDTEXT)); 2134 // cmp->dcd.suspendview = 0; // 12 Jan 08 SHL appears not to be used here 2135 if (*cmp->dcd.mask.szMask) { 2136 sprintf(s, 2137 GetPString(IDS_COMPREADYFILTEREDTEXT), 2138 cmp->dcd.mask.szMask); 2139 WinSetDlgItemText(hwnd, COMP_NOTE, s); 2140 } 2125 2141 else 2126 2142 WinSetDlgItemText(hwnd, COMP_NOTE, GetPString(IDS_COMPREADYTEXT)); … … 2133 2149 cmp = INSTDATA(hwnd); 2134 2150 if (cmp) { 2135 2136 2151 PCNRITEM pci; 2137 2152 CHAR ofile[CCHMAXPATH]; 2138 2153 2139 pci = (PCNRITEM) 2140 2141 2142 2154 pci = (PCNRITEM)WinSendMsg(cmp->hwndCalling, 2155 CM_QUERYRECORDEMPHASIS, 2156 MPFROMLONG(CMA_FIRST), 2157 MPFROMSHORT(CRA_CURSORED)); 2143 2158 // 01 Aug 07 SHL 2144 2159 if (pci && *pci->pszFileName) { … … 2167 2182 strcpy(fc.file2, ofile); 2168 2183 WinDlgBox(HWND_DESKTOP, hwnd, 2169 CFileDlgProc, FM3ModHandle, FCMP_FRAME, (PVOID) &fc);2184 CFileDlgProc, FM3ModHandle, FCMP_FRAME, (PVOID)&fc); 2170 2185 } 2171 2186 } … … 2177 2192 cmp = INSTDATA(hwnd); 2178 2193 if (cmp) { 2179 2180 2194 BOOL empty = FALSE; 2181 2195 PCNRITEM pci; … … 2227 2241 cmp = INSTDATA(hwnd); 2228 2242 if (cmp) { 2229 2230 2243 DIRCNRDATA dcd1; 2231 2244 BOOL tempsubj; … … 2233 2246 dcd1 = cmp->dcd; 2234 2247 AdjustDetailsSwitches(hwndLeft, 2235 (HWND) 2248 (HWND)0, SHORT1FROMMP(mp1), 2236 2249 cmp->leftdir, "DirCmp", &cmp->dcd, TRUE); 2237 2250 tempsubj = cmp->dcd.detailssubject; … … 2248 2261 cmp = INSTDATA(hwnd); 2249 2262 if (cmp) { 2250 2251 2263 CHAR fullname[CCHMAXPATH]; 2252 2264 … … 2264 2276 cmp = INSTDATA(hwnd); 2265 2277 if (cmp) { 2266 2267 2278 SNAPSTUFF *sf; 2268 2279 CHAR fullname[CCHMAXPATH]; … … 2279 2290 strcpy(sf->dirname, cmp->rightdir); 2280 2291 sf->recurse = cmp->includesubdirs; 2281 if (_beginthread(StartSnap, NULL, 65536, (PVOID) 2292 if (_beginthread(StartSnap, NULL, 65536, (PVOID)sf) == -1) { 2282 2293 Runtime_Error(pszSrcFile, __LINE__, 2283 2294 GetPString(IDS_COULDNTSTARTTHREADTEXT)); … … 2292 2303 cmp = INSTDATA(hwnd); 2293 2304 if (cmp) { 2294 2295 2305 WALK2 wa; 2296 2297 2306 memset(&wa, 0, sizeof(wa)); 2298 2307 wa.size = sizeof(wa); 2299 2308 strcpy(wa.szCurrentPath1, cmp->leftdir); 2300 2309 strcpy(wa.szCurrentPath2, cmp->rightdir); 2301 if (WinDlgBox(HWND_DESKTOP, hwnd, WalkTwoCmpDlgProc, 2302 FM3ModHandle, WALK2_FRAME, 2310 if (WinDlgBox(HWND_DESKTOP, 2311 hwnd, 2312 WalkTwoCmpDlgProc, 2313 FM3ModHandle, 2314 WALK2_FRAME, 2303 2315 MPFROMP(&wa)) && 2304 2316 !IsFile(wa.szCurrentPath1) && … … 2321 2333 cmp = INSTDATA(hwnd); 2322 2334 if (cmp) { 2323 2324 2335 COMPARE *forthread; 2325 2336 … … 2330 2341 forthread->cmp = cmp; 2331 2342 forthread->action = SHORT1FROMMP(mp1); 2332 if (_beginthread(ActionCnrThread, NULL, 122880, (PVOID) 2343 if (_beginthread(ActionCnrThread, NULL, 122880, (PVOID)forthread) 2333 2344 == -1) { 2334 2345 Runtime_Error(pszSrcFile, __LINE__, … … 2356 2367 break; 2357 2368 default: 2358 WinSetDlgItemText(hwnd, COMP_NOTE, 2359 GetPString(IDS_COMPHOLDDUNNOTEXT)); 2360 break; 2369 Runtime_Error(pszSrcFile, __LINE__, "mp1 %u unexpected", SHORT1FROMMP(mp1)); 2361 2370 } 2362 2371 WinEnableWindow(hwndRight, FALSE); … … 2376 2385 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTOLDER), FALSE); 2377 2386 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTBIGGER), FALSE); 2378 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTSMALLER), 2379 FALSE); 2387 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTSMALLER), FALSE); 2380 2388 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTALL), FALSE); 2381 WinEnableWindow(WinWindowFromID(hwnd, COMP_INCLUDESUBDIRS),2382 FALSE);2383 2389 WinEnableWindow(WinWindowFromID(hwnd, COMP_SETDIRS), FALSE); 2384 2390 WinEnableWindow(WinWindowFromID(hwnd, COMP_DELETELEFT), FALSE); … … 2388 2394 WinEnableWindow(WinWindowFromID(hwnd, COMP_COPYRIGHT), FALSE); 2389 2395 WinEnableWindow(WinWindowFromID(hwnd, COMP_MOVERIGHT), FALSE); 2390 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAMECONTENT), 2391 FALSE); 2392 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTIDENTICAL), 2393 FALSE); 2396 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAMECONTENT), FALSE); 2397 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTIDENTICAL), FALSE); 2394 2398 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAME), FALSE); 2395 2399 WinEnableWindow(WinWindowFromID(hwnd, IDM_INVERT), FALSE); 2396 2400 WinEnableWindow(WinWindowFromID(hwnd, COMP_FILTER), FALSE); 2401 WinEnableWindow(WinWindowFromID(hwnd, COMP_INCLUDESUBDIRS), FALSE); 2402 WinEnableWindow(WinWindowFromID(hwnd, COMP_HIDENOTSELECTED), FALSE); 2397 2403 } 2398 2404 } … … 2442 2448 forthread->cmp = cmp; 2443 2449 forthread->action = SHORT1FROMMP(mp1); 2444 if (_beginthread(SelectCnrsThread, NULL, 65536, (PVOID) 2450 if (_beginthread(SelectCnrsThread, NULL, 65536, (PVOID)forthread) 2445 2451 == -1) { 2446 2452 Runtime_Error(pszSrcFile, __LINE__, … … 2487 2493 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTOLDER), FALSE); 2488 2494 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTBIGGER), FALSE); 2489 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTSMALLER), 2490 FALSE); 2495 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTSMALLER), FALSE); 2491 2496 WinEnableWindow(WinWindowFromID(hwnd, IDM_DESELECTALL), FALSE); 2492 WinEnableWindow(WinWindowFromID(hwnd, COMP_INCLUDESUBDIRS), 2493 2497 WinEnableWindow(WinWindowFromID(hwnd, COMP_INCLUDESUBDIRS), FALSE); 2498 WinEnableWindow(WinWindowFromID(hwnd, COMP_HIDENOTSELECTED), FALSE); 2494 2499 WinEnableWindow(WinWindowFromID(hwnd, COMP_SETDIRS), FALSE); 2495 2500 WinEnableWindow(WinWindowFromID(hwnd, COMP_DELETELEFT), FALSE); … … 2499 2504 WinEnableWindow(WinWindowFromID(hwnd, COMP_COPYRIGHT), FALSE); 2500 2505 WinEnableWindow(WinWindowFromID(hwnd, COMP_MOVERIGHT), FALSE); 2501 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAMECONTENT), 2502 FALSE); 2503 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTIDENTICAL), 2504 FALSE); 2506 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAMECONTENT), FALSE); 2507 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTIDENTICAL), FALSE); 2505 2508 WinEnableWindow(WinWindowFromID(hwnd, IDM_SELECTSAME), FALSE); 2506 2509 WinEnableWindow(WinWindowFromID(hwnd, IDM_INVERT), FALSE); … … 2598 2601 WinDestroyWindow(cmp->dcd.hwndLastMenu); 2599 2602 if (cmp->dcd.hwndObject) { 2600 WinSetWindowPtr(cmp->dcd.hwndObject, QWL_USER, (PVOID) 2603 WinSetWindowPtr(cmp->dcd.hwndObject, QWL_USER, (PVOID)NULL); 2601 2604 if (!PostMsg(cmp->dcd.hwndObject, WM_CLOSE, MPVOID, MPVOID)) 2602 2605 WinSendMsg(cmp->dcd.hwndObject, WM_CLOSE, MPVOID, MPVOID);
Note:
See TracChangeset
for help on using the changeset viewer.