Changeset 783 for trunk/dll/seeall.c
- Timestamp:
- Aug 14, 2007, 6:09:54 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/dll/seeall.c (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/seeall.c
r775 r783 22 22 03 Nov 06 SHL Count thread usage 23 23 30 Mar 07 GKY Remove GetPString for window class names 24 03 Aug 07 GKY Enlarged and made setable everywhere Findbuf (speed file loading)24 03 Aug 07 GKY Enlarged and made setable everywhere Findbuf (speeds file loading) 25 25 06 Aug 07 GKY Reduce DosSleep times (ticket 148) 26 26 07 Aug 07 SHL Use BldQuotedFullPathName and BldQuotedFileName 27 13 Aug 07 SHL Sync code with other FilesToGet usage 28 13 Aug 07 SHL Move #pragma alloc_text to end for OpenWatcom compat 27 29 28 30 ***********************************************************************/ … … 48 50 49 51 static PSZ pszSrcFile = __FILE__; 50 51 #pragma alloc_text(SEEALL,comparefullnames,comparenames,comparesizes)52 #pragma alloc_text(SEEALL,comparedates,compareexts,SeeStatusProc)53 #pragma alloc_text(SEEALL,InitWindow,PaintLine,SeeAllWndProc)54 #pragma alloc_text(SEEALL,UpdateList,CollectList,ReSort,Mark)55 #pragma alloc_text(SEEALL,BuildAList,RemoveDeleted,SeeFrameWndProc,FilterList)56 #pragma alloc_text(SEEALL2,SeeObjWndProc,MakeSeeObjWinThread,FindDupes,DupeDlgProc)57 #pragma alloc_text(SEEALL3,FreeAllFilesList,DoADir,FindAllThread,AFDrvsWndProc)58 #pragma alloc_text(SEEALL3,StartSeeAll)59 52 60 53 typedef struct … … 726 719 // Assume <2GB since file did not fit 727 720 clFreeBytes = fsa.cUnitAvail * fsa.cSectorUnit * 728 fsa.cbSector;721 fsa.cbSector; 729 722 if (clFreeBytes) { 730 723 // Find item that will fit in available space … … 1413 1406 } 1414 1407 1415 static BOOL UpdateList(HWND hwnd, CHAR ** list)1408 static BOOL UpdateList(HWND hwnd, CHAR **list) 1416 1409 { 1417 1410 /* Updates files in the list */ 1418 1411 1419 1412 ALLDATA *ad = WinQueryWindowPtr(hwnd, QWL_USER); 1420 registerULONG x, z;1413 ULONG x, z; 1421 1414 BOOL ret, didone = FALSE; 1422 1415 FILEFINDBUF3 ffb; 1423 ULONG nm;1416 ULONG ulFindCnt; 1424 1417 HDIR hdir; 1425 1418 CHAR *p; … … 1437 1430 didone = TRUE; 1438 1431 hdir = HDIR_CREATE; 1439 nm= 1;1432 ulFindCnt = 1; 1440 1433 if (!DosFindFirst(list[z], &hdir, FILE_NORMAL | FILE_ARCHIVED | 1441 1434 FILE_DIRECTORY | FILE_READONLY | FILE_SYSTEM | 1442 FILE_HIDDEN, &ffb, sizeof(ffb), & nm,1435 FILE_HIDDEN, &ffb, sizeof(ffb), &ulFindCnt, 1443 1436 FIL_STANDARD)) { 1444 1437 DosFindClose(hdir); … … 1458 1451 didone = TRUE; 1459 1452 hdir = HDIR_CREATE; 1460 nm= 1;1453 ulFindCnt = 1; 1461 1454 if (!DosFindFirst(list[z], &hdir, FILE_NORMAL | FILE_ARCHIVED | 1462 1455 FILE_DIRECTORY | FILE_READONLY | FILE_SYSTEM | 1463 FILE_HIDDEN, &ffb, sizeof(ffb), & nm,1456 FILE_HIDDEN, &ffb, sizeof(ffb), &ulFindCnt, 1464 1457 FIL_STANDARD)) { 1465 1458 DosFindClose(hdir); … … 1893 1886 ALLDATA *ad = WinQueryWindowPtr(hwnd, QWL_USER); 1894 1887 CHAR *filename, *enddir; 1895 FILEFINDBUF3 *pffb, *ffb;1888 PFILEFINDBUF3 pffbArray, pffbFile; 1896 1889 HDIR hdir = HDIR_CREATE; 1897 ULONG nm, uL; 1898 register ULONG x; 1899 register PBYTE fb; 1890 ULONG ulFindCnt; 1891 ULONG ulFindMax; 1892 ULONG ulBufBytes; 1893 ULONG x; 1894 APIRET rc; 1900 1895 1901 1896 filename = xmalloc(CCHMAXPATH, pszSrcFile, __LINE__); … … 1903 1898 return; 1904 1899 1905 u L= ad->afFilesToGet;1900 ulFindMax = ad->afFilesToGet; 1906 1901 if (fRemoteBug && isalpha(*pathname) && pathname[1] == ':' && 1907 1902 pathname[2] == '\\' && 1908 1903 (driveflags[toupper(*pathname) - 'A'] & DRIVE_REMOTE)) 1909 uL = 1; 1910 pffb = xmalloc(sizeof(FILEFINDBUF3) * uL, pszSrcFile, __LINE__); 1911 if (!pffb) { 1904 ulFindMax = 1; 1905 1906 ulBufBytes = sizeof(FILEFINDBUF3) * ulFindMax; 1907 pffbArray = xmalloc(ulBufBytes, pszSrcFile, __LINE__); 1908 if (!pffbArray) { 1912 1909 free(filename); 1913 1910 return; 1914 1911 } 1915 nm = uL; 1912 1916 1913 strcpy(filename, pathname); 1917 1914 enddir = &filename[strlen(filename) - 1]; … … 1923 1920 strcpy(enddir, "*"); 1924 1921 DosError(FERR_DISABLEHARDERR); 1925 if (!DosFindFirst(filename, &hdir, FILE_NORMAL | FILE_ARCHIVED | 1922 ulFindCnt = ulFindMax; 1923 rc = DosFindFirst(filename, &hdir, FILE_NORMAL | FILE_ARCHIVED | 1926 1924 FILE_READONLY | FILE_DIRECTORY | FILE_SYSTEM | 1927 FILE_HIDDEN, pffb, sizeof(FILEFINDBUF3) * nm, &nm, 1928 FIL_STANDARD)) { 1925 FILE_HIDDEN, 1926 pffbArray, ulBufBytes, &ulFindCnt, FIL_STANDARD); 1927 if (!rc) { 1929 1928 do { 1929 #if 0 // 13 Aug 07 SHL fixme to be gone 1930 { 1931 static ULONG ulMaxCnt = 1; 1932 if (ulFindCnt > ulMaxCnt) { 1933 ulMaxCnt = ulFindCnt; 1934 DbgMsg(pszSrcFile, __LINE__, "ulMaxCnt %u/%u", ulMaxCnt, ulFindMax); 1935 } 1936 } 1937 #endif // fixme to be gone 1930 1938 priority_normal(); 1931 fb = (PBYTE) pffb; 1932 for (x = 0; x < nm; x++) { 1933 ffb = (FILEFINDBUF3 *) fb; 1934 if (ffb->attrFile & FILE_DIRECTORY) { 1939 pffbFile = pffbArray; 1940 for (x = 0; x < ulFindCnt; x++) { 1941 if (pffbFile->attrFile & FILE_DIRECTORY) { 1935 1942 // Skip . and .. 1936 if ( ffb->achName[0] != '.' ||1937 ( ffb->achName[1] &&1938 ( ffb->achName[1] != '.' || ffb->achName[2]))) {1939 strcpy(enddir, ffb->achName);1943 if (pffbFile->achName[0] != '.' || 1944 (pffbFile->achName[1] && 1945 (pffbFile->achName[1] != '.' || pffbFile->achName[2]))) { 1946 strcpy(enddir, pffbFile->achName); 1940 1947 DoADir(hwnd, filename); 1941 1948 } … … 1943 1950 else { 1944 1951 *enddir = 0; 1945 strcpy(enddir, ffb->achName);1952 strcpy(enddir, pffbFile->achName); 1946 1953 if (!ad->afalloc || ad->affiles > ad->afalloc - 1) { 1947 1954 … … 1970 1977 ad->afhead[ad->affiles].filename = 1971 1978 ad->afhead[ad->affiles].fullname + (enddir - filename); 1972 ad->afhead[ad->affiles].cbFile = ffb->cbFile;1973 ad->afhead[ad->affiles].date = ffb->fdateLastWrite;1974 ad->afhead[ad->affiles].time = ffb->ftimeLastWrite;1975 ad->afhead[ad->affiles].attrFile = (USHORT) ffb->attrFile;1979 ad->afhead[ad->affiles].cbFile = pffbFile->cbFile; 1980 ad->afhead[ad->affiles].date = pffbFile->fdateLastWrite; 1981 ad->afhead[ad->affiles].time = pffbFile->ftimeLastWrite; 1982 ad->afhead[ad->affiles].attrFile = (USHORT) pffbFile->attrFile; 1976 1983 ad->afhead[ad->affiles].flags = 0; 1977 1984 ad->affiles++; 1978 if (ad->longest < ffb->cchName) 1979 ad->longest = ffb->cchName; 1980 if (ad->longestw < ffb->cchName + (enddir - filename)) 1981 ad->longestw = ffb->cchName + (enddir - filename); 1982 } 1983 } 1984 fb += ffb->oNextEntryOffset; 1985 } 1986 nm = uL; 1987 } while (!ad->stopflag && 1988 !DosFindNext(hdir, pffb, sizeof(FILEFINDBUF3) * nm, &nm)); 1985 if (ad->longest < pffbFile->cchName) 1986 ad->longest = pffbFile->cchName; 1987 if (ad->longestw < pffbFile->cchName + (enddir - filename)) 1988 ad->longestw = pffbFile->cchName + (enddir - filename); 1989 } 1990 } 1991 pffbFile = (PFILEFINDBUF3)((PBYTE)pffbFile + pffbFile->oNextEntryOffset); 1992 } // for 1993 if (ad->stopflag) 1994 break; 1995 ulFindCnt = ulFindMax; 1996 rc = DosFindNext(hdir, pffbArray, sizeof(FILEFINDBUF3) * ulFindCnt, &ulFindCnt); 1997 } while (!rc); 1989 1998 DosFindClose(hdir); 1990 1999 } 1991 free(pffb); 2000 2001 if (rc && rc != ERROR_NO_MORE_FILES) { 2002 Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__, 2003 GetPString(IDS_CANTFINDDIRTEXT), filename); 2004 } 2005 2006 free(pffbArray); 1992 2007 free(filename); 1993 2008 } … … 2216 2231 RECTL * Rectl) 2217 2232 { 2218 2219 2233 ALLDATA *ad = WinQueryWindowPtr(hwnd, QWL_USER); 2220 2234 POINTL ptl; … … 3802 3816 3803 3817 case WM_COMMAND: 3804 if (!pAD) 3818 if (!pAD) { 3819 Runtime_Error(pszSrcFile, __LINE__, "no data"); 3805 3820 return 0; 3821 } 3806 3822 switch (SHORT1FROMMP(mp1)) { 3807 3823 case IDM_SETTARGET: … … 4272 4288 return hwndFrame; 4273 4289 } 4290 4291 #pragma alloc_text(SEEALL,comparefullnames,comparenames,comparesizes) 4292 #pragma alloc_text(SEEALL,comparedates,compareexts,SeeStatusProc) 4293 #pragma alloc_text(SEEALL,InitWindow,PaintLine,SeeAllWndProc) 4294 #pragma alloc_text(SEEALL,UpdateList,CollectList,ReSort,Mark) 4295 #pragma alloc_text(SEEALL,BuildAList,RemoveDeleted,SeeFrameWndProc,FilterList) 4296 #pragma alloc_text(SEEALL2,SeeObjWndProc,MakeSeeObjWinThread,FindDupes,DupeDlgProc) 4297 #pragma alloc_text(SEEALL3,FreeAllFilesList,DoADir,FindAllThread,AFDrvsWndProc) 4298 #pragma alloc_text(SEEALL3,StartSeeAll) 4299
Note:
See TracChangeset
for help on using the changeset viewer.
