Changeset 1559 for trunk/dll/seeall.c
- Timestamp:
- Dec 1, 2010, 11:16:31 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/seeall.c
r1533 r1559 49 49 08 Mar 09 GKY Removed variable aurguments from docopyf and unlinkf (not used) 50 50 28 Jun 09 GKY Added AddBackslashToPath() to remove repeatative code. 51 17 JAN 10 GKY Changes to get working with Watcom 1.9 Beta (1/16/10). Mostly cast CHAR CONSTANT * as CHAR *. 51 17 Jan 10 GKY Changes to get working with Watcom 1.9 Beta (1/16/10). Mostly cast CHAR CONSTANT * as CHAR *. 52 01 Dec 10 SHL Ensure FindAllThread thread quits fast when requested 52 53 53 54 ***********************************************************************/ … … 649 650 GetPString(IDS_MOVEDTEXT) : GetPString(IDS_COPIEDTEXT); 650 651 if (*path) { 651 652 652 strcpy(newname, path); 653 AddBackslashToPath(newname); 653 654 //if (newname[strlen(newname) - 1] != '\\') 654 655 // strcat(newname, "\\"); … … 2014 2015 priority_normal(); 2015 2016 pffbFile = pffbArray; 2017 2016 2018 for (x = 0; x < ulFindCnt; x++) { 2019 if (ad->stopflag) 2020 break; 2017 2021 if (pffbFile->attrFile & FILE_DIRECTORY) { 2018 2022 // Skip . and .. … … 2081 2085 pffbFile = (PFILEFINDBUF3L)((PBYTE)pffbFile + pffbFile->oNextEntryOffset); 2082 2086 } // for 2087 2083 2088 if (ad->stopflag) 2084 2089 break; 2090 2085 2091 ulFindCnt = ulFindMax; 2086 2092 rc = xDosFindNext(hdir, … … 2110 2116 HMQ hmq2 = (HMQ) 0; 2111 2117 ALLDATA *ad = WinQueryWindowPtr(hwnd, QWL_USER); 2118 APIRET apiret; 2112 2119 2113 2120 # ifdef FORTIFY 2114 2121 Fortify_EnterScope(); 2115 2122 # endif 2116 if (!DosRequestMutexSem(ad->hmtxScan, SEM_INDEFINITE_WAIT)) { 2123 2124 // DbgMsg(pszSrcFile, __LINE__, "FindAllThread requesting hmtxScan"); 2125 apiret = DosRequestMutexSem(ad->hmtxScan, SEM_INDEFINITE_WAIT); 2126 if (apiret != NO_ERROR) 2127 Dos_Error(MB_CANCEL, apiret, hwnd, pszSrcFile, __LINE__, "DosRequestMutexSem"); 2128 else { 2117 2129 priority_normal(); 2118 2130 hab2 = WinInitialize(0); 2131 2119 2132 if (hab2) { 2120 2133 hmq2 = WinCreateMsgQueue(hab2, 0); … … 2129 2142 *startname = (CHAR) (x + 'A'); 2130 2143 DoADir(hwnd, startname); 2144 if (ad->stopflag) 2145 break; 2131 2146 PostMsg(hwnd, UM_RESCAN, MPVOID, MPVOID); 2132 2147 DosSleep(0); //26 Aug 07 GKY 1 2133 2148 } 2134 } 2149 } // for 2135 2150 } 2136 2151 } 2137 2152 else 2138 2153 DoADir(hwnd, ad->szFindPath); 2154 2139 2155 DosPostEventSem(CompactSem); 2140 2156 } 2141 2157 } 2142 if (ad->afalloc != ad->afheadcnt) {2143 2144 ALLFILES *tempa, **templ;2145 2146 tempa =2147 xrealloc(ad->afhead, sizeof(ALLFILES) * ad->afheadcnt, pszSrcFile,2148 __LINE__);2149 if (tempa) {2150 ad->afhead = tempa;2151 ad->afalloc = ad->afheadcnt;2152 }2153 templ =2154 xrealloc(ad->afindex, sizeof(ALLFILES *) * ad->afheadcnt, pszSrcFile,2155 __LINE__);2156 if (templ)2157 ad->afindex = templ;2158 DosPostEventSem(CompactSem);2159 }2160 2158 2161 2159 if (!ad->stopflag) { 2160 if (ad->afalloc != ad->afheadcnt) { 2161 2162 ALLFILES *tempa, **templ; 2163 2164 tempa = 2165 xrealloc(ad->afhead, sizeof(ALLFILES) * ad->afheadcnt, pszSrcFile, 2166 __LINE__); 2167 if (tempa) { 2168 ad->afhead = tempa; 2169 ad->afalloc = ad->afheadcnt; 2170 } 2171 templ = 2172 xrealloc(ad->afindex, sizeof(ALLFILES *) * ad->afheadcnt, pszSrcFile, 2173 __LINE__); 2174 if (templ) 2175 ad->afindex = templ; 2176 DosPostEventSem(CompactSem); 2177 } 2162 2178 PostMsg(hwnd, UM_RESCAN, MPFROMLONG(1), MPVOID); 2163 2179 ReSort(hwnd); 2164 2180 } 2181 2182 // DbgMsg(pszSrcFile, __LINE__, "FindAllThread releasing hmtxScan"); 2165 2183 DosReleaseMutexSem(ad->hmtxScan); 2166 2184 } 2185 2167 2186 if (hmq2) { 2168 2187 PostMsg(hwnd, UM_CONTAINER_FILLED, MPVOID, MPVOID); 2169 2188 WinDestroyMsgQueue(hmq2); 2170 2189 } 2190 2171 2191 if (hab2) { 2172 2192 DecrThreadUsage(); 2173 2193 WinTerminate(hab2); 2174 2194 } 2195 2175 2196 # ifdef FORTIFY 2176 2197 Fortify_LeaveScope(); … … 2367 2388 } 2368 2389 CommaFmtULL(szCmmaFmtFileSize, 2369 2390 sizeof(szCmmaFmtFileSize), ad->afindex[y]->cbFile, ' '); 2370 2391 FDateFormat(szDate, ad->afindex[y]->date); 2371 2392 len = sprintf(szBuff, … … 2382 2403 "-S"[((ad->afindex[y]->attrFile & FILE_SYSTEM) != 0)], 2383 2404 "-D"[((ad->afindex[y]->attrFile & FILE_DIRECTORY) != 0)], 2384 2405 szDate, 2385 2406 ad->afindex[y]->time.hours, TimeSeparator, 2386 2407 ad->afindex[y]->time.minutes, TimeSeparator, … … 2525 2546 { 2526 2547 ALLDATA *pAD = WinQueryWindowPtr(hwnd, QWL_USER); 2548 APIRET apiret; 2527 2549 2528 2550 switch (msg) { 2529 2551 case WM_CREATE: 2530 // fprintf(stderr,"Seeall: WM_CREATE\n");2552 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc WM_CREATE"); 2531 2553 WinSetWindowPtr(hwnd, QWL_USER, NULL); 2532 2554 # ifdef FORTIFY … … 2664 2686 2665 2687 case UM_SETUP5: 2666 // fprintf(stderr,"Seeall: UM_SETUP5\n");2688 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc UM_SETUP5"); 2667 2689 if (pAD) { 2668 2690 if (mp1 && *((CHAR *)mp1)) … … 2714 2736 2715 2737 case UM_SETUP2: 2716 // fprintf(stderr,"Seeall: UM_SETUP2\n");2738 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc UM_SETUP2"); 2717 2739 if (pAD) { 2718 2740 … … 2745 2767 2746 2768 case UM_SETUP3: 2747 // fprintf(stderr,"Seeall: UM_SETUP3\n");2769 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc UM_SETUP3"); 2748 2770 if (pAD) { 2749 2771 pAD->multiplier = pAD->afindexcnt / 32767; … … 2784 2806 2785 2807 case UM_SETUP4: 2786 // fprintf(stderr,"Seeall: UM_SETUP4\n");2808 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc UM_SETUP4"); 2787 2809 if (pAD) 2788 2810 pAD->killme = TRUE; … … 2792 2814 2793 2815 case UM_RESCAN: 2794 // fprintf(stderr,"Seeall: UM_RESCAN\n");2816 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc UM_RESCAN"); 2795 2817 if (pAD && !pAD->stopflag) { 2796 2818 if (DosRequestMutexSem(pAD->hmtxScan, SEM_IMMEDIATE_RETURN)) { 2819 // Assume still working - show progress 2797 2820 CHAR s[CCHMAXPATH + 80], tm[34]; 2798 2821 … … 2818 2841 } 2819 2842 else { 2843 // Assume scan done 2820 2844 CHAR s[(CCHMAXPATH * 2) + 80], tm[34], ts[34], tb[34]; 2821 2845 ULONG y; … … 2868 2892 2869 2893 case UM_SETUP: 2870 // fprintf(stderr,"Seeall: UM_SETUP\n");2894 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc UM_SETUP"); 2871 2895 if (pAD) { 2872 2896 WinSendMsg(pAD->hvscroll, SBM_SETTHUMBSIZE, MPFROM2SHORT(1, 1), MPVOID); … … 3435 3459 pAD->multiplier = 1; 3436 3460 if (!pAD->afindexcnt) { 3437 3461 if (!fAlertBeepOff) 3438 3462 DosBeep(250, 50); 3439 3463 PostMsg(hwnd, UM_RESCAN, MPVOID, MPVOID); 3440 3464 } 3441 3465 else { 3442 3466 if (!fAlertBeepOff) 3443 3467 DosBeep(1000, 25); 3444 3468 WinInvalidateRect(hwnd, NULL, FALSE); … … 3456 3480 3457 3481 case WM_PAINT: 3458 // fprintf(stderr,"Seeall: WM_PAINT\n");3482 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc WM_PAINT"); 3459 3483 if (pAD) { 3460 3484 … … 3552 3576 [COLORS_CURSOREDNORMALBACK]]); 3553 3577 CommaFmtULL(szCmmaFmtFileSize, 3554 3555 3578 sizeof(szCmmaFmtFileSize), pAD->afindex[y]->cbFile, ' '); 3579 FDateFormat(szDate, pAD->afindex[y]->date); 3556 3580 len = 3557 3581 sprintf(szBuff, … … 3568 3592 "-H"[((pAD->afindex[y]->attrFile & FILE_HIDDEN) != 0)], 3569 3593 "-S"[((pAD->afindex[y]->attrFile & FILE_SYSTEM) != 0)], 3570 3571 3594 "-D"[((pAD->afindex[y]->attrFile & FILE_DIRECTORY) != 0)], 3595 szDate, 3572 3596 pAD->afindex[y]->time.hours, TimeSeparator, 3573 3597 pAD->afindex[y]->time.minutes, TimeSeparator, … … 3654 3678 3655 3679 case WM_VSCROLL: 3656 // fprintf(stderr,"Seeall: WM_VSCROLL\n");3680 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc WM_VSCROLL"); 3657 3681 if (pAD && !pAD->stopflag && 3658 3682 !DosRequestMutexSem(pAD->hmtxScan, SEM_IMMEDIATE_RETURN)) { … … 4338 4362 4339 4363 case WM_SIZE: 4340 // fprintf(stderr,"Seeall: WM_SIZE\n");4364 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc WM_SIZE"); 4341 4365 PostMsg(hwnd, UM_SETUP3, MPVOID, MPVOID); 4342 4366 break; 4343 4367 4344 4368 case WM_CLOSE: 4345 // fprintf(stderr,"Seeall: WM_CLOSE\n");4369 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc WM_CLOSE"); 4346 4370 if (pAD) 4347 4371 pAD->stopflag = 1; … … 4350 4374 4351 4375 case WM_DESTROY: 4352 // fprintf(stderr,"Seeall: WM_DESTROY\n");4376 // DbgMsg(pszSrcFile, __LINE__, "SeeAllWndProc WM_DESTROY"); 4353 4377 if (pAD) { 4354 4378 pAD->stopflag = 1; 4355 4379 if (pAD->hmtxScan) { 4356 DosRequestMutexSem(pAD->hmtxScan, 15000); 4357 DosCloseMutexSem(pAD->hmtxScan); 4380 apiret = DosRequestMutexSem(pAD->hmtxScan, 2000); 4381 if (apiret != NO_ERROR) 4382 Dos_Error(MB_CANCEL, apiret, hwnd, pszSrcFile, __LINE__, "DosRequestMutexSem"); 4383 DosCloseMutexSem(pAD->hmtxScan); // Are probably going to die anyway 4358 4384 } 4359 4385 if (pAD->hwndPopup)
Note:
See TracChangeset
for help on using the changeset viewer.