Changeset 362 for trunk/dll/comp.c
- Timestamp:
- Jul 26, 2006, 11:40:57 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/comp.c
r316 r362 16 16 25 May 05 SHL Rework with ULONGLONG 17 17 06 Jun 05 SHL Drop unused 18 12 Jul 06 SHL Renames and comments 18 12 Jul 06 SHL Renames and comments 19 13 Jul 06 SHL Use Runtime_Error 19 20 20 21 ***********************************************************************/ … … 49 50 } SNAPSTUFF; 50 51 52 static PSZ pszSrcFile = __FILE__; 53 51 54 //=== SnapShot() Write directory tree to file and recurse if requested === 52 55 … … 58 61 ULONG nm = 1L; 59 62 60 fb = malloc(sizeof(FILEFINDBUF4));63 fb = xmalloc(sizeof(FILEFINDBUF4),pszSrcFile,__LINE__); 61 64 if(fb) { 62 mask = malloc(CCHMAXPATH);65 mask = xmalloc(CCHMAXPATH,pszSrcFile,__LINE__); 63 66 if(mask) { 64 67 sprintf(mask, … … 127 130 p++; 128 131 } 129 fp = fopen(sf->filename,"w");130 if (fp) {132 fp = xfopen(sf->filename,"w",pszSrcFile,__LINE__); 133 if (fp) { 131 134 fprintf(fp,"\"%s\"\n",sf->dirname); 132 135 SnapShot(sf->dirname,fp,sf->recurse); … … 178 181 AddToListboxBottom(fc.hwndList,s); 179 182 fp1 = _fsopen(fc.file1,"rb",SH_DENYNO); 180 if(fp1) { 183 if (!fp1) { 184 sprintf(s,GetPString(IDS_COMPCANTOPENTEXT),fc.file1); 185 AddToListboxBottom(fc.hwndList,s); 186 WinSetWindowText(fc.hwndHelp,GetPString(IDS_ERRORTEXT)); 187 } 188 else { 181 189 fp2 = _fsopen(fc.file2,"rb",SH_DENYNO); 182 if(fp2) { 190 if (!fp2) { 191 sprintf(s,GetPString(IDS_COMPCANTOPENTEXT),fc.file2); 192 AddToListboxBottom(fc.hwndList,s); 193 WinSetWindowText(fc.hwndHelp,GetPString(IDS_ERRORTEXT)); 194 } 195 else { 183 196 len1 = filelength(fileno(fp1)); 184 197 len2 = filelength(fileno(fp2)); … … 246 259 fclose(fp2); 247 260 } 248 else {249 sprintf(s,GetPString(IDS_COMPCANTOPENTEXT),fc.file2);250 AddToListboxBottom(fc.hwndList,s);251 WinSetWindowText(fc.hwndHelp,GetPString(IDS_ERRORTEXT));252 }253 261 fclose(fp1); 254 }255 else {256 sprintf(s,GetPString(IDS_COMPCANTOPENTEXT),fc.file1);257 AddToListboxBottom(fc.hwndList,s);258 WinSetWindowText(fc.hwndHelp,GetPString(IDS_ERRORTEXT));259 262 } 260 263 WinDestroyMsgQueue(hmq2); … … 294 297 break; 295 298 } 296 if(_beginthread(CompareFilesThread, 297 NULL, 298 65536, 299 (PVOID)fc) == -1) { 300 Win_Error(hwnd,hwnd,__FILE__,__LINE__, 301 GetPString(IDS_CANTCOMPARETEXT)); 299 if (_beginthread(CompareFilesThread,NULL,65536,(PVOID)fc) == -1) { 300 Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT)); 302 301 WinDismissDlg(hwnd,0); 303 302 } … … 392 391 break; 393 392 default: 394 DosBeep(250,100);393 Runtime_Error(pszSrcFile, __LINE__, "bad case %u", cmp->action); 395 394 goto Abort; 396 395 } … … 493 492 MPFROM2SHORT(1,CMA_ERASE | CMA_TEXTCHANGED)); 494 493 } 495 else if (rc) {494 else if (rc) { 496 495 rc = Dos_Error(MB_ENTERCANCEL, 497 496 rc, 498 497 HWND_DESKTOP, 499 __FILE__,498 pszSrcFile, 500 499 __LINE__, 501 500 GetPString(IDS_COMPMOVEFAILEDTEXT), … … 527 526 } 528 527 rc = docopyf(COPY,pci->szFileName,"%s",newname); 529 if(!rc) { 528 if (rc) { 529 rc = Dos_Error(MB_ENTERCANCEL, 530 rc, 531 HWND_DESKTOP, 532 pszSrcFile, 533 __LINE__, 534 GetPString(IDS_COMPCOPYFAILEDTEXT), 535 pci->szFileName, 536 newname); 537 if(rc == MBID_CANCEL) 538 pcin = NULL; /* cause loop to break */ 539 } 540 else { 530 541 WinSendMsg(hwndCnrS,CM_SETRECORDEMPHASIS,MPFROMP(pci), 531 542 MPFROM2SHORT(FALSE,CRA_SELECTED)); … … 562 573 MPFROM2SHORT(1,CMA_ERASE | CMA_TEXTCHANGED)); 563 574 } 564 else {565 rc = Dos_Error(MB_ENTERCANCEL,566 rc,567 HWND_DESKTOP,568 __FILE__,569 __LINE__,570 GetPString(IDS_COMPCOPYFAILEDTEXT),571 pci->szFileName,572 newname);573 if(rc == MBID_CANCEL) /* cause loop to break */574 pcin = NULL;575 }576 575 break; 577 576 … … 654 653 if(!recurse) 655 654 ulM = 128; 656 maskstr = malloc(CCHMAXPATH);655 maskstr = xmalloc(CCHMAXPATH,pszSrcFile,__LINE__); 657 656 if(!maskstr) 658 657 return; 659 ffb4 = malloc(sizeof(FILEFINDBUF4) * ulM);658 ffb4 = xmalloc(sizeof(FILEFINDBUF4) * ulM,pszSrcFile,__LINE__); 660 659 if(!ffb4) { 661 660 free(maskstr); … … 750 749 751 750 hab = WinInitialize(0); 752 if(hab) { 751 if(!hab) 752 Win_Error(NULLHANDLE,NULLHANDLE,pszSrcFile,__LINE__,"WinInitialize"); 753 else { 753 754 hmq = WinCreateMsgQueue(hab,0); 754 if(hmq) { 755 755 if(!hmq) 756 Win_Error(NULLHANDLE,NULLHANDLE,pszSrcFile,__LINE__,"WinCreateMsgQueue"); 757 else { 756 758 INT x; 757 759 INT l; … … 821 823 memset(&fb4,0,sizeof(fb4)); 822 824 fp = fopen(cmp->rightlist,"r"); 823 if(fp) { 825 if(!fp) 826 Runtime_Error(pszSrcFile, __LINE__, "can not open %s (%d)", cmp->rightlist, errno); 827 else { 824 828 while(!feof(fp)) { 825 829 /* first get name of directory */ … … 944 948 fclose(fp); 945 949 } 946 else947 DosBeep(50,100);948 950 } // if snapshot file 949 951 … … 982 984 MPFROMLONG(EXTRA_RECORD_BYTES2), 983 985 MPFROMLONG(recsNeeded)); 984 if(!pcilFirst) { 986 if (!pcilFirst) { 987 Runtime_Error(pszSrcFile, __LINE__, "CM_ALLOCRECORD %u failed", recsNeeded); 985 988 recsNeeded = 0; 986 DosBeep(100,100);987 989 } 988 990 } 989 if (recsNeeded) {991 if (recsNeeded) { 990 992 pcirFirst = WinSendMsg(hwndRight,CM_ALLOCRECORD, 991 993 MPFROMLONG(EXTRA_RECORD_BYTES2), 992 994 MPFROMLONG(recsNeeded)); 993 if(!pcirFirst) { 995 if (!pcirFirst) { 996 Runtime_Error(pszSrcFile, __LINE__, "CM_ALLOCRECORD %u failed", recsNeeded); 994 997 recsNeeded = 0; 995 DosBeep(100,100);996 998 pcil = pcilFirst; 997 999 while(pcil) { … … 1003 1005 } 1004 1006 } 1005 if (recsNeeded) {1007 if (recsNeeded) { 1006 1008 pcil = pcilFirst; 1007 1009 pcir = pcirFirst; … … 1058 1060 pcil->crtime.minutes = filesl[l]->crtime.minutes; 1059 1061 pcil->crtime.hours = filesl[l]->crtime.hours; 1060 if (*cmp->dcd.mask.szMask) {1062 if (*cmp->dcd.mask.szMask) { 1061 1063 if(!Filter((PMINIRECORDCORE)pcil,(PVOID)&cmp->dcd.mask)) { 1062 1064 pcil->rc.flRecordAttr |= CRA_FILTERED; … … 1194 1196 pcil->crtime.minutes = filesl[l]->crtime.minutes; 1195 1197 pcil->crtime.hours = filesl[l]->crtime.hours; 1196 if (*cmp->dcd.mask.szMask) {1197 if (!Filter((PMINIRECORDCORE)pcil,(PVOID)&cmp->dcd.mask)) {1198 if (*cmp->dcd.mask.szMask) { 1199 if (!Filter((PMINIRECORDCORE)pcil,(PVOID)&cmp->dcd.mask)) { 1198 1200 pcil->rc.flRecordAttr |= CRA_FILTERED; 1199 1201 pcir->rc.flRecordAttr |= CRA_FILTERED; … … 1212 1214 // pcir->rc.hptrIcon = hptrFile; 1213 1215 y = 0; 1214 for (x = 0;x < 6;x++)1215 if (attrstring[x])1216 for (x = 0;x < 6;x++) { 1217 if (attrstring[x]) 1216 1218 pcir->szDispAttr[y++] = (CHAR)((pcir->attrFile & (1 << x)) ? 1217 1219 attrstring[x] : '-'); 1220 } 1218 1221 pcir->szDispAttr[5] = 0; 1219 1222 pcir->cbFile = filesr[r]->cbFile; … … 1300 1303 // pcir->rc.hptrIcon = hptrFile; 1301 1304 y = 0; 1302 for (x = 0;x < 6;x++)1305 for (x = 0;x < 6;x++) { 1303 1306 if(attrstring[x]) 1304 1307 pcir->szDispAttr[y++] = (CHAR)((pcir->attrFile & (1 << x)) ? 1305 1308 attrstring[x] : '-'); 1309 } 1306 1310 pcir->szDispAttr[5] = 0; 1307 1311 pcir->cbFile = filesr[r]->cbFile; … … 1325 1329 pcir->crtime.minutes = filesr[r]->crtime.minutes; 1326 1330 pcir->crtime.hours = filesr[r]->crtime.hours; 1327 if (*cmp->dcd.mask.szMask) {1328 if (!Filter((PMINIRECORDCORE)pcir,(PVOID)&cmp->dcd.mask)) {1331 if (*cmp->dcd.mask.szMask) { 1332 if (!Filter((PMINIRECORDCORE)pcir,(PVOID)&cmp->dcd.mask)) { 1329 1333 pcir->rc.flRecordAttr |= CRA_FILTERED; 1330 1334 pcil->rc.flRecordAttr |= CRA_FILTERED; … … 1357 1361 ri.cRecordsInsert = recsNeeded; 1358 1362 ri.fInvalidateRecord = FALSE; 1359 if (!WinSendMsg(hwndLeft,CM_INSERTRECORD,1363 if (!WinSendMsg(hwndLeft,CM_INSERTRECORD, 1360 1364 MPFROMP(pcilFirst),MPFROMP(&ri))) { 1361 1365 pcil = pcilFirst; 1362 while (pcil) {1366 while (pcil) { 1363 1367 pcit = (PCNRITEM)pcil->rc.preccNextRecord; 1364 1368 WinSendMsg(hwndLeft,CM_FREERECORD, … … 1375 1379 ri.cRecordsInsert = recsNeeded; 1376 1380 ri.fInvalidateRecord = FALSE; 1377 if (!WinSendMsg(hwndRight,CM_INSERTRECORD,1381 if (!WinSendMsg(hwndRight,CM_INSERTRECORD, 1378 1382 MPFROMP(pcirFirst),MPFROMP(&ri))) { 1379 1383 WinSendMsg(hwndLeft,CM_REMOVERECORD, 1380 1384 MPVOID,MPFROM2SHORT(0,CMA_FREE | CMA_INVALIDATE)); 1381 1385 pcir = pcirFirst; 1382 while (pcir) {1386 while (pcir) { 1383 1387 pcit = (PCNRITEM)pcir->rc.preccNextRecord; 1384 1388 WinSendMsg(hwndRight,CM_FREERECORD, … … 1393 1397 Deselect(hwndLeft); 1394 1398 Deselect(hwndRight); 1395 if (!PostMsg(cmp->hwnd,UM_CONTAINER_FILLED,MPVOID,MPVOID))1396 WinSendMsg (cmp->hwnd,UM_CONTAINER_FILLED,MPVOID,MPVOID);1399 if (!PostMsg(cmp->hwnd,UM_CONTAINER_FILLED,MPVOID,MPVOID)) 1400 WinSendMsg (cmp->hwnd,UM_CONTAINER_FILLED,MPVOID,MPVOID); 1397 1401 notified = TRUE; 1398 if (filesl)1402 if (filesl) 1399 1403 FreeList((CHAR **)filesl); // Must have failed to create container 1400 if (filesr)1404 if (filesr) 1401 1405 FreeList((CHAR **)filesr); 1402 1406 WinDestroyMsgQueue(hmq); 1403 1407 } 1404 else1405 DosBeep(250,100);1406 1408 WinTerminate(hab); 1407 1409 } 1408 else 1409 DosBeep(50,100); 1410 if(!notified) 1410 if (!notified) 1411 1411 PostMsg(cmp->hwnd,UM_CONTAINER_FILLED,MPVOID,MPVOID); 1412 1412 free(cmp); … … 1422 1422 { 1423 1423 COMPARE *cmp; 1424 1424 1425 static HPOINTER hptr = (HPOINTER)0; 1425 1426 … … 1427 1428 case WM_INITDLG: 1428 1429 cmp = (COMPARE *)mp2; 1429 if(cmp) { 1430 if(!hptr) 1430 if (!cmp) { 1431 Runtime_Error(pszSrcFile, __LINE__, "no data"); 1432 WinDismissDlg(hwnd,0); 1433 } 1434 else { 1435 if (!hptr) 1431 1436 hptr = WinLoadPointer(HWND_DESKTOP,FM3ModHandle,COMPARE_ICON); 1432 1437 WinDefDlgProc(hwnd,WM_SETICON,MPFROMLONG(hptr),MPVOID); 1433 1438 cmp->hwnd = hwnd; 1434 WinSetWindowPtr(hwnd, 0,(PVOID)cmp);1439 WinSetWindowPtr(hwnd,QWL_USER,(PVOID)cmp); 1435 1440 SetCnrCols(hwndLeft,TRUE); 1436 1441 SetCnrCols(hwndRight,TRUE); … … 1452 1457 } 1453 1458 } 1454 else1455 WinDismissDlg(hwnd,0);1456 1459 break; 1457 1460 … … 1640 1643 case UM_CONTAINER_FILLED: 1641 1644 cmp = INSTDATA(hwnd); 1642 if(cmp) { 1645 if (!cmp) { 1646 Runtime_Error(pszSrcFile, __LINE__, "pCompare NULL"); 1647 WinDismissDlg(hwnd,0); 1648 } 1649 else { 1643 1650 cmp->filling = FALSE; 1644 1651 WinEnableWindow(hwndLeft,TRUE); … … 1646 1653 WinEnableWindowUpdate(hwndLeft,TRUE); 1647 1654 WinEnableWindowUpdate(hwndRight,TRUE); 1648 // if(!mp1) {1649 1655 { 1650 1656 CHAR s[81]; … … 1697 1703 GetPString(IDS_COMPREADYTEXT)); 1698 1704 } 1699 else {1700 DosBeep(50,100);1701 WinDismissDlg(hwnd,0);1702 }1703 1705 break; 1704 1706 … … 1840 1842 break; 1841 1843 1844 // fixme to be gone - field edits not allowed 1842 1845 case CN_BEGINEDIT: 1843 1846 { … … 1845 1848 PCNRITEM pci = (PCNRITEM)((PCNREDITDATA)mp2)->pRecord; 1846 1849 1847 if (pfi || pci) {1850 if (pfi || pci) { 1848 1851 PostMsg(hwnd, 1849 1852 CM_CLOSEEDIT, 1850 1853 MPVOID, 1851 1854 MPVOID); 1852 DosBeep(250,100); 1855 // DosBeep(250,100); // fixme 1856 Runtime_Error(pszSrcFile, __LINE__, "CN_BEGINEDIT unexpected"); 1853 1857 } 1854 1858 } 1855 1859 break; 1856 1860 1861 // fixme to be gone - field edits not allowed 1857 1862 case CN_REALLOCPSZ: 1858 1863 cmp = INSTDATA(hwnd); 1859 if(cmp) { 1860 1864 if (!cmp) 1865 Runtime_Error(pszSrcFile, __LINE__, "no data"); 1866 else { 1861 1867 PFIELDINFO pfi = ((PCNREDITDATA)mp2)->pFieldInfo; 1862 1868 PCNRITEM pci = (PCNRITEM)((PCNREDITDATA)mp2)->pRecord; … … 1864 1870 CHAR szData[CCHMAXPATH],testname[CCHMAXPATH],*p; 1865 1871 1866 if(!pci && !pfi) { 1872 Runtime_Error(pszSrcFile, __LINE__, "CN_REALLOCPSZ unexpected"); 1873 if (!pci && !pfi) { 1867 1874 hwndMLE = WinWindowFromID(WinWindowFromID(hwnd, 1868 1875 SHORT1FROMMP(mp1)),CID_MLE); … … 1871 1878 szData); 1872 1879 p = strchr(szData,'\n'); 1873 if (p)1880 if (p) 1874 1881 *p = 0; 1875 1882 p = strchr(szData,'\r'); 1876 if (p)1883 if (p) 1877 1884 *p = 0; 1878 1885 bstrip(szData); 1879 if (*szData) {1880 if (!DosQueryPathInfo(szData,1886 if (*szData) { 1887 if (!DosQueryPathInfo(szData, 1881 1888 FIL_QUERYFULLNAME, 1882 1889 testname, 1883 1890 sizeof(testname))) { 1884 if (!SetDir(cmp->hwndParent,1891 if (!SetDir(cmp->hwndParent, 1885 1892 hwnd, 1886 1893 testname, 1887 1894 1)) { 1888 if (SHORT1FROMMP(mp1) == COMP_LEFTDIR)1895 if (SHORT1FROMMP(mp1) == COMP_LEFTDIR) 1889 1896 strcpy(cmp->leftdir,testname); 1890 1897 else { … … 2005 2012 MPFROMLONG(CMA_CNRTITLE | CMA_FLWINDOWATTR)); 2006 2013 cmp->filling = TRUE; 2007 forthread = malloc(sizeof(COMPARE)); 2008 if(forthread) { 2014 forthread = xmalloc(sizeof(COMPARE),pszSrcFile,__LINE__); 2015 if(!forthread) 2016 WinDismissDlg(hwnd,0); 2017 else { 2009 2018 *forthread = *cmp; 2010 2019 forthread->cmp = cmp; 2011 if(_beginthread(FillCnrsThread,NULL,122880,(PVOID)forthread) != -1) { 2020 if (_beginthread(FillCnrsThread,NULL,122880,(PVOID)forthread) == -1) { 2021 Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT)); 2022 WinDismissDlg(hwnd,0); 2023 free(forthread); 2024 } 2025 else { 2012 2026 WinEnableWindowUpdate(hwndLeft,FALSE); 2013 2027 WinEnableWindowUpdate(hwndRight,FALSE); … … 2051 2065 WinEnableWindow(WinWindowFromID(hwnd,COMP_FILTER),FALSE); 2052 2066 } 2053 else {2054 DosBeep(250,100);2055 WinDismissDlg(hwnd,0);2056 free(forthread);2057 }2058 }2059 else {2060 DosBeep(250,100);2061 WinDismissDlg(hwnd,0);2062 2067 } 2063 2068 } … … 2280 2285 if(export_filename(HWND_DESKTOP,fullname,1) && *fullname && 2281 2286 !strchr(fullname,'*') && !strchr(fullname,'?')) { 2282 sf = malloc(sizeof(SNAPSTUFF)); 2283 if(sf) { 2284 memset(sf,0,sizeof(SNAPSTUFF)); 2287 sf = xmallocz(sizeof(SNAPSTUFF),pszSrcFile,__LINE__); 2288 if (sf) { 2285 2289 strcpy(sf->filename,fullname); 2286 2290 if(hwndLeft == cmp->hwndCalling) … … 2289 2293 strcpy(sf->dirname,cmp->rightdir); 2290 2294 sf->recurse = cmp->includesubdirs; 2291 if(_beginthread(StartSnap,NULL,65536,(PVOID)sf) == -1) { 2295 if (_beginthread(StartSnap,NULL,65536,(PVOID)sf) == -1) { 2296 Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT)); 2292 2297 free(sf); 2293 DosBeep(50,100);2294 2298 } 2295 2299 } … … 2334 2338 2335 2339 cmp->filling = TRUE; 2336 forthread = malloc(sizeof(COMPARE));2337 if (forthread) {2340 forthread = xmalloc(sizeof(COMPARE),pszSrcFile,__LINE__); 2341 if (forthread) { 2338 2342 *forthread = *cmp; 2339 2343 forthread->cmp = cmp; 2340 2344 forthread->action = SHORT1FROMMP(mp1); 2341 if(_beginthread(ActionCnrThread,NULL,122880,(PVOID)forthread) != -1) { 2345 if (_beginthread(ActionCnrThread,NULL,122880,(PVOID)forthread) == -1) { 2346 Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT)); 2347 free(forthread); 2348 } 2349 else { 2342 2350 WinEnableWindowUpdate(hwndLeft,FALSE); 2343 2351 WinEnableWindowUpdate(hwndRight,FALSE); … … 2395 2403 WinEnableWindow(WinWindowFromID(hwnd,COMP_FILTER),FALSE); 2396 2404 } 2397 else {2398 DosBeep(250,100);2399 free(forthread);2400 }2401 2405 } 2402 else2403 DosBeep(250,100);2404 2406 } 2405 2407 break; … … 2437 2439 case IDM_INVERT: 2438 2440 cmp = INSTDATA(hwnd); 2439 if(cmp) { 2440 2441 if (!cmp) 2442 Runtime_Error(pszSrcFile, __LINE__, "no data"); 2443 else { 2441 2444 COMPARE *forthread; 2442 2445 2443 2446 cmp->filling = TRUE; 2444 forthread = malloc(sizeof(COMPARE));2445 if (forthread) {2447 forthread = xmalloc(sizeof(COMPARE),pszSrcFile,__LINE__); 2448 if (forthread) { 2446 2449 *forthread = *cmp; 2447 2450 forthread->cmp = cmp; 2448 2451 forthread->action = SHORT1FROMMP(mp1); 2449 if(_beginthread(SelectCnrsThread,NULL,65536,(PVOID)forthread) != -1) { 2452 if (_beginthread(SelectCnrsThread,NULL,65536,(PVOID)forthread) == -1) { 2453 Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT)); 2454 free(forthread); 2455 } 2456 else { 2450 2457 WinEnableWindowUpdate(hwndLeft,FALSE); 2451 2458 WinEnableWindowUpdate(hwndRight,FALSE); … … 2502 2509 WinEnableWindow(WinWindowFromID(hwnd,COMP_FILTER),FALSE); 2503 2510 } 2504 else {2505 DosBeep(250,100);2506 free(forthread);2507 }2508 2511 } 2509 else2510 DosBeep(250,100);2511 2512 } 2512 2513 break;
Note:
See TracChangeset
for help on using the changeset viewer.