Changeset 162
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/datamin.c
r136 r162 7 7 8 8 Copyright (c) 1993-98 M. Kimes 9 Copyright (c) 2001, 2005 Steven H. Levine9 Copyright (c) 2001, 2005 Steven H. Levine 10 10 11 11 14 Sep 02 SHL Handle large partitions … … 13 13 23 May 05 SHL Use QWL_USER 14 14 23 May 05 SHL Avoid delays for inaccessible drives 15 25 May 05 SHL Use ULONGLONG and CommaFmtULL 15 16 16 17 ***********************************************************************/ … … 20 21 #define INCL_WIN 21 22 #define INCL_GPI 22 23 #define INCL_LONGLONG 23 24 #include <os2.h> 25 24 26 #include <stdio.h> 25 27 #include <stdlib.h> … … 724 726 CHAR s[90]; 725 727 CHAR szFreeQty[38]; 726 CHAR *pszFreeUM;727 728 CHAR szDrvLtr[] = " :"; 728 729 CHAR *pszFSystem; 729 float fltFreeQty;730 ULONGLONG ullFreeQty; 730 731 ULONG ulPercentFree; 731 732 ULONG wasx; … … 748 749 if (!pDM || pDM -> qfsi_rc) 749 750 { 750 fltFreeQty = 0; 751 pszFreeUM = ""; 751 ullFreeQty = 0; 752 752 ulPercentFree = 0; 753 753 } 754 754 else 755 755 { 756 fltFreeQty = (float)pDM -> fsa.cUnitAvail *756 ullFreeQty = (ULONGLONG)pDM -> fsa.cUnitAvail * 757 757 (pDM -> fsa.cSectorUnit * pDM -> fsa.cbSector); 758 if (fltFreeQty >= (1024 * 1024))759 {760 fltFreeQty /= (1024 * 1024);761 pszFreeUM = "mb";762 }763 else if (fltFreeQty >= 1024)764 {765 fltFreeQty /= 1024;766 pszFreeUM = "kb";767 }768 else769 pszFreeUM = "b";770 758 771 759 ulPercentFree = (pDM -> fsa.cUnit && pDM -> fsa.cUnitAvail) ? … … 774 762 } 775 763 776 commafmt(szFreeQty, sizeof(szFreeQty), (ULONG)fltFreeQty);764 CommaFmtULL(szFreeQty, sizeof(szFreeQty), ullFreeQty,' '); 777 765 *szDrvLtr = (CHAR)(id - MINI_DRIVEA) + 'A'; 778 766 … … 786 774 } 787 775 sprintf(s, 788 " %s %s %s(%lu%%) %s [%s]",776 " %s %s (%lu%%) %s [%s]", 789 777 szDrvLtr, 790 778 szFreeQty, 791 pszFreeUM,792 779 ulPercentFree, 793 780 GetPString(IDS_FREETEXT), … … 978 965 FILEFINDBUF3 ffb; 979 966 ULONG nm = 1L; 980 float fltFreeQty;967 ULONGLONG ullFreeQty; 981 968 HDIR hdir = HDIR_CREATE; 982 969 FSALLOCATE fsa; … … 991 978 priority_bumped(); 992 979 DosFindClose(hdir); 993 *szFileQty = *szFreeQty = 0;994 980 DosError(FERR_DISABLEHARDERR); 995 981 if (!DosQueryFSInfo(toupper(*SwapperDat) - '@', FSIL_ALLOC, 996 982 &fsa, sizeof(FSALLOCATE))) 997 983 { 998 fltFreeQty = fsa.cUnitAvail * (fsa.cSectorUnit * fsa.cbSector); 999 if (fltFreeQty > 1024 * 1024) 1000 { 1001 pszFreeUM = "mb"; 1002 fltFreeQty /= (1024 * 1024); 1003 } 1004 else if (fltFreeQty > 1024) 1005 { 1006 pszFreeUM = "kb"; 1007 fltFreeQty /= 1024; 1008 } 1009 else 1010 { 1011 pszFreeUM = "b"; 1012 } 1013 commafmt(szFreeQty, sizeof(szFreeQty), (ULONG) fltFreeQty); 1014 } 1015 if (ffb.cbFile > 1024 * 1024) 1016 { 1017 pszFileUM = "mb"; 1018 commafmt(szFileQty, sizeof(szFileQty), ffb.cbFile / (1024 * 1024)); 1019 } 1020 else if (ffb.cbFile > 1024) 1021 { 1022 pszFileUM = "kb"; 1023 commafmt(szFileQty, sizeof(szFileQty), ffb.cbFile / 1024); 984 ullFreeQty = (ULONGLONG)fsa.cUnitAvail * (fsa.cSectorUnit * fsa.cbSector); 985 CommaFmtULL(szFreeQty, sizeof(szFreeQty), ullFreeQty,' '); 1024 986 } 1025 987 else 1026 { 1027 pszFileUM = "b"; 1028 commafmt(szFileQty, sizeof(szFileQty), ffb.cbFile); 1029 } 1030 sprintf(s, " %s %s%s%s%s%s", 988 *szFreeQty = 0; 989 990 CommaFmtULL(szFileQty, sizeof(szFileQty), ffb.cbFile,' '); 991 sprintf(s, " %s %s%s%s", 1031 992 GetPString(IDS_SWAPTITLETEXT), 1032 993 szFileQty, 1033 pszFileUM, 1034 (*szFreeQty) ? "/" : NullStr, 1035 szFreeQty, 1036 (*szFreeQty) ? pszFreeUM : NullStr); 1037 WinSetDlgItemText(hwnd, 1038 MINI_SWAP, 1039 s); 994 *szFreeQty ? "/" : NullStr, 995 szFreeQty); 996 WinSetDlgItemText(hwnd,MINI_SWAP,s); 1040 997 } 1041 998 } … … 1045 1002 case UM_SETUP3: // Memory utilization 1046 1003 { 1047 CHAR s[134], tm[38], szQty[38] , *pszUM, *tmk;1004 CHAR s[134], tm[38], szQty[38]; 1048 1005 ULONG amem = 0; 1049 1006 … … 1051 1008 (PVOID) & amem, (ULONG) sizeof(amem))) 1052 1009 { 1053 *tm = *szQty = 0; 1054 if (amem > 1024 * 1024) 1055 { 1056 tmk = "mb"; 1057 commafmt(tm, sizeof(tm), amem / (1024 * 1024)); 1058 } 1059 else if (amem > 1024) 1060 { 1061 tmk = "kb"; 1062 commafmt(tm, sizeof(tm), amem / 1024); 1063 } 1010 CommaFmtUL(tm, sizeof(tm), amem,'M'); 1011 if (!Dos16MemAvail(&amem)) 1012 CommaFmtUL(szQty, sizeof(szQty), amem,'M'); 1064 1013 else 1065 { 1066 tmk = "b"; 1067 commafmt(tm, sizeof(tm), amem); 1068 } 1069 if (!Dos16MemAvail(&amem)) 1070 { 1071 if (amem > 1024 * 1024) 1072 { 1073 pszUM = "mb"; 1074 commafmt(szQty, sizeof(szQty), amem / (1024 * 1024)); 1075 } 1076 else if (amem > 1024) 1077 { 1078 pszUM = "kb"; 1079 commafmt(szQty, sizeof(szQty), amem / 1024); 1080 } 1081 else 1082 { 1083 pszUM = "b"; 1084 commafmt(szQty, sizeof(szQty), amem); 1085 } 1086 } 1087 sprintf(s, " %s%s%s%s%s%s", 1014 *szQty = 0; 1015 sprintf(s, " %s%s%s%s", 1088 1016 GetPString(IDS_MEMTITLETEXT), 1089 1017 szQty, 1090 (*szQty) ? pszUM : NullStr,1091 1018 (*szQty) ? "/" : NullStr, 1092 tm, 1093 tmk); 1019 tm); 1094 1020 WinSetDlgItemText(hwnd, 1095 1021 MINI_MEM, … … 1129 1055 ppi = (PPROCESSINFO) (ppi -> ptiFirst + ppi -> usThreadCount); 1130 1056 } 1131 *szQty = *tm = 0;1132 1057 commafmt(szQty, sizeof(szQty), numprocs); 1133 1058 commafmt(tm, sizeof(tm), numthreads); … … 1149 1074 else 1150 1075 { 1151 *szQty = 0;1152 1076 commafmt(szQty, sizeof(szQty), 1153 1077 WinQuerySwitchList(WinQueryAnchorBlock(hwnd), (PSWBLOCK) 0, 0)); -
trunk/dll/info.c
r131 r162 7 7 8 8 Copyright (c) 1993-98 M. Kimes 9 Copyright (c) 2001, 2005 Steven H. Levine9 Copyright (c) 2001, 2005 Steven H. Levine 10 10 11 11 16 Oct 02 SHL Handle large partitions … … 13 13 01 Aug 04 SHL Rework lstrip/rstrip usage 14 14 23 May 05 SHL Use QWL_USER 15 25 May 05 SHL Use ULONGLONG and CommaFmtULL 15 16 16 17 ***********************************************************************/ … … 19 20 #define INCL_WIN 20 21 #define INCL_GPI 21 22 #define INCL_LONGLONG 22 23 #include <os2.h> 24 23 25 #include <stdio.h> 24 26 #include <stdlib.h> … … 26 28 #include <ctype.h> 27 29 #include <share.h> 30 28 31 #include "fm3dll.h" 29 32 #include "fm3dlg.h" … … 75 78 76 79 77 MRESULT EXPENTRY DrvInfoProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) { 78 79 CHAR *filename; 80 81 switch(msg) { 80 MRESULT EXPENTRY DrvInfoProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 81 { 82 CHAR *pszFileName; 83 CHAR szMB[20]; 84 CHAR szKB[20]; 85 CHAR szUnits[20]; 86 87 switch(msg) 88 { 82 89 case WM_INITDLG: 83 90 if(mp2) { … … 86 93 ULONG type; 87 94 88 filename = (CHAR *)mp2;89 WinSetWindowPtr(hwnd,QWL_USER,(PVOID) filename);95 pszFileName = (CHAR *)mp2; 96 WinSetWindowPtr(hwnd,QWL_USER,(PVOID)pszFileName); 90 97 WinSendDlgItemMsg(hwnd, 91 98 INFO_LABEL, … … 103 110 MPFROM2SHORT(SMA_SLIDERARMDIMENSIONS,0), 104 111 MPFROM2SHORT(0,0)); 105 if(driveflags[toupper(* filename) - 'A'] & DRIVE_NOTWRITEABLE) {112 if(driveflags[toupper(*pszFileName) - 'A'] & DRIVE_NOTWRITEABLE) { 106 113 WinSendDlgItemMsg(hwnd, 107 114 INFO_LABEL, … … 112 119 WinWindowFromID(hwnd,DID_OK)); 113 120 } 114 if(IsFullName( filename)) {121 if(IsFullName(pszFileName)) { 115 122 116 123 CHAR FileSystem[CCHMAXPATH * 2]; … … 118 125 sprintf(FileSystem, 119 126 GetPString(IDS_DRIVEINFOTITLETEXT), 120 toupper(* filename));127 toupper(*pszFileName)); 121 128 WinSetWindowText(hwnd, 122 129 FileSystem); 123 if(CheckDrive(toupper(* filename),130 if(CheckDrive(toupper(*pszFileName), 124 131 FileSystem, 125 132 &type) != -1) { … … 134 141 PFSQBUFFER2 pfsq; 135 142 136 Path[0] = toupper(* filename);143 Path[0] = toupper(*pszFileName); 137 144 Path[1] = ':'; 138 145 Path[2] = 0; … … 148 155 pfsn = pfsq->szName + pfsq->cbName + 1; 149 156 pfsd = pfsn + pfsq->cbFSDName + 1; 150 if(pfsq->cbFSAData && pfsd && *pfsd) { 157 if(pfsq->cbFSAData && pfsd && *pfsd) 158 { 151 159 sprintf(s, 152 160 " (%s)", … … 160 168 161 169 DosError(FERR_DISABLEHARDERR); 162 if(!DosQueryFSInfo(toupper(* filename) - '@',170 if(!DosQueryFSInfo(toupper(*pszFileName) - '@', 163 171 FSIL_ALLOC,&fsa,sizeof(FSALLOCATE))) { 164 172 … … 172 180 memset(&volser,0,sizeof(volser)); 173 181 DosError(FERR_DISABLEHARDERR); 174 if(!DosQueryFSInfo(toupper(* filename) - '@',182 if(!DosQueryFSInfo(toupper(*pszFileName) - '@', 175 183 FSIL_VOLSER, 176 184 &volser, … … 186 194 volser. 187 195 serial); 188 WinSetDlgItemText(hwnd, 189 INFO_SERIAL, 190 s); 196 WinSetDlgItemText(hwnd, INFO_SERIAL, s); 197 198 CommaFmtULL(szMB,sizeof(szMB), 199 (ULONGLONG)fsa.cUnit * 200 (fsa.cSectorUnit * fsa.cbSector), 201 'M'); 202 CommaFmtULL(szKB,sizeof(szKB), 203 (ULONGLONG)fsa.cUnit * 204 (fsa.cSectorUnit * fsa.cbSector), 205 'K'); 206 CommaFmtULL(szUnits,sizeof(szUnits), 207 (ULONGLONG)fsa.cUnit, 208 ' '); 191 209 sprintf(s, 192 "%lu mb, %lu kb, %lu %s%s", 193 (ULONG)(((float)fsa.cUnit * 194 (fsa.cSectorUnit * fsa.cbSector)) / (1024L * 1024L)), 195 (ULONG)(((float)fsa.cUnit * (fsa.cSectorUnit * fsa.cbSector)) / 1024L), 196 fsa.cUnit, 210 "%s, %s, %s %s%s", 211 szMB,szKB,szUnits, 197 212 GetPString(IDS_UNITTEXT), 198 &"s"[fsa.cUnit == 1L]); 199 WinSetDlgItemText(hwnd, 200 INFO_TOTAL, 201 s); 213 &"s"[fsa.cUnit == 1L]); // hack cough 214 WinSetDlgItemText(hwnd,INFO_TOTAL,s); 215 216 CommaFmtULL(szMB,sizeof(szMB), 217 (ULONGLONG)fsa.cUnitAvail * 218 (fsa.cSectorUnit * fsa.cbSector), 219 'M'); 220 CommaFmtULL(szKB,sizeof(szKB), 221 (ULONGLONG)fsa.cUnitAvail * 222 (fsa.cSectorUnit * fsa.cbSector), 223 'K'); 224 CommaFmtULL(szUnits,sizeof(szUnits), 225 (ULONGLONG)fsa.cUnitAvail, 226 ' '); 202 227 sprintf(s, 203 "%lu mb, %lu kb, %lu %s%s", 204 (ULONG)(((float)fsa.cUnitAvail * 205 (fsa.cSectorUnit * fsa.cbSector)) / (1024L * 1024L)), 206 (ULONG)(((float)fsa.cUnitAvail * (fsa.cSectorUnit * fsa.cbSector)) / 1024L), 207 fsa.cUnitAvail, 228 "%s, %s, %s %s%s", 229 szMB,szKB,szUnits, 208 230 GetPString(IDS_UNITTEXT), 209 231 &"s"[fsa.cUnitAvail == 1L]); … … 219 241 INFO_ALLOCUNITS, 220 242 s); 221 FlagMsg(* filename,s);243 FlagMsg(*pszFileName,s); 222 244 WinSetDlgItemText(hwnd, 223 245 INFO_FLAGS, … … 255 277 sprintf(FileSystem, 256 278 GetPString(IDS_CANTQUERYVOLTEXT), 257 toupper(* filename));279 toupper(*pszFileName)); 258 280 Notify(FileSystem); 259 281 WinDismissDlg(hwnd,0); … … 263 285 sprintf(FileSystem, 264 286 GetPString(IDS_CANTQUERYALLOCTEXT), 265 toupper(* filename));287 toupper(*pszFileName)); 266 288 Notify(FileSystem); 267 289 WinDismissDlg(hwnd,0); … … 269 291 } 270 292 else { 271 FlagMsg(* filename,s);293 FlagMsg(*pszFileName,s); 272 294 sprintf(FileSystem, 273 295 GetPString(IDS_DRIVEINACCESSIBLETEXT), 274 toupper(* filename),296 toupper(*pszFileName), 275 297 s); 276 298 Notify(FileSystem); … … 304 326 305 327 case DID_OK: 306 filename = INSTDATA(hwnd);307 if(!(driveflags[toupper(* filename) - 'A'] & DRIVE_NOTWRITEABLE)) {328 pszFileName = INSTDATA(hwnd); 329 if(!(driveflags[toupper(*pszFileName) - 'A'] & DRIVE_NOTWRITEABLE)) { 308 330 309 331 CHAR s[CCHMAXPATHCOMP + 3]; … … 324 346 memset(&volser,0,sizeof(volser)); 325 347 DosError(FERR_DISABLEHARDERR); 326 if(!DosQueryFSInfo(toupper(* filename) - '@',348 if(!DosQueryFSInfo(toupper(*pszFileName) - '@', 327 349 FSIL_VOLSER, 328 350 &volser, … … 332 354 *s = strlen(s + 1); 333 355 DosError(FERR_DISABLEHARDERR); 334 if(DosSetFSInfo(toupper(* filename) - '@',356 if(DosSetFSInfo(toupper(*pszFileName) - '@', 335 357 2L, 336 358 (PVOID)s, … … 354 376 PFNWP oldproc; 355 377 HWND lasthwndMenu; 356 CHAR filename[CCHMAXPATH];378 CHAR szFileName[CCHMAXPATH]; 357 379 CHAR **list; 358 380 BOOL madechanges; … … 363 385 */ 364 386 365 MRESULT EXPENTRY IconProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {366 387 MRESULT EXPENTRY IconProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 388 { 367 389 ICONSTUF *is; 368 390 static BOOL emphasized = FALSE; … … 412 434 ici.fFormat = ICON_FILE; 413 435 ici.pszFileName = szFrom; 414 if(!WinSetFileIcon((PSZ)is-> filename,436 if(!WinSetFileIcon((PSZ)is->szFileName, 415 437 (PICONINFO)&ici)) { 416 438 ici.fFormat = ICON_CLEAR; 417 WinSetFileIcon((PSZ)is-> filename,439 WinSetFileIcon((PSZ)is->szFileName, 418 440 (PICONINFO)&ici); 419 441 } 420 hptr = WinLoadFileIcon(is-> filename,442 hptr = WinLoadFileIcon(is->szFileName, 421 443 FALSE); 422 444 if(!hptr) 423 hptr = (!IsFile(is-> filename)) ?445 hptr = (!IsFile(is->szFileName)) ? 424 446 hptrDir : 425 447 hptrFile; … … 473 495 FLE_FRAME); 474 496 if(is->lasthwndMenu) { 475 p = strrchr(is-> filename,'.');497 p = strrchr(is->szFileName,'.'); 476 498 if(!p || 477 499 (stricmp(p,".ICO") && … … 498 520 SETICON_FRAME, 499 521 (PVOID)((SHORT1FROMMP(mp1) == IDM_SELECTALL) ? 500 is-> filename :522 is->szFileName : 501 523 NULL)); 502 524 break; … … 590 612 case BN_CLICKED: 591 613 is = WinQueryWindowPtr(hwnd,QWL_USER); 592 if(is && *is-> filename) {614 if(is && *is->szFileName) { 593 615 594 616 LISTINFO li; … … 596 618 597 619 memset(&li,0,sizeof(LISTINFO)); 598 if(!AddToList(is-> filename,620 if(!AddToList(is->szFileName, 599 621 &li.list, 600 622 &numfiles, … … 635 657 MPVOID); 636 658 if(sSelect >= 0) { 637 *is-> filename = 0;659 *is->szFileName = 0; 638 660 WinSendDlgItemMsg(hwnd, 639 661 FLE_NAME, 640 662 LM_QUERYITEMTEXT, 641 663 MPFROM2SHORT(sSelect,CCHMAXPATH), 642 MPFROMP(is-> filename));643 if(*is-> filename) {664 MPFROMP(is->szFileName)); 665 if(*is->szFileName) { 644 666 if(SHORT2FROMMP(mp1) == LN_SELECT) 645 667 WinSendMsg(hwnd, … … 653 675 NULL, 654 676 32, 655 is-> filename);677 is->szFileName); 656 678 } 657 679 } … … 692 714 WinCheckButton(hwnd,FLE_PROTDLL,FALSE); 693 715 is = WinQueryWindowPtr(hwnd,QWL_USER); 694 if(is && *is-> filename) {716 if(is && *is->szFileName) { 695 717 696 718 CHAR s[97]; … … 703 725 704 726 DosError(FERR_DISABLEHARDERR); 705 if(DosFindFirst(is-> filename,727 if(DosFindFirst(is->szFileName, 706 728 &hdir, 707 729 FILE_NORMAL | FILE_ARCHIVED | … … 812 834 ((fs.attrFile & FILE_SYSTEM) != 0)); 813 835 DosError(FERR_DISABLEHARDERR); 814 if(!DosQueryAppType(is-> filename,&apptype)) {836 if(!DosQueryAppType(is->szFileName,&apptype)) { 815 837 WinEnableWindow(WinWindowFromID(hwnd,FLE_OS2FS),TRUE); 816 838 WinEnableWindow(WinWindowFromID(hwnd,FLE_OS2WIN),TRUE); … … 861 883 WinEnableWindow(WinWindowFromID(hwnd,FLE_PROTDLL),FALSE); 862 884 } 863 hptr = WinLoadFileIcon(is-> filename,885 hptr = WinLoadFileIcon(is->szFileName, 864 886 FALSE); 865 887 WinShowWindow(WinWindowFromID(hwnd,FLE_ICON), … … 881 903 WinEnableWindow(WinWindowFromID(hwnd,FLE_ISARCHIVE),TRUE); 882 904 WinEnableWindow(WinWindowFromID(hwnd,FLE_BINARY),TRUE); 883 fp = _fsopen(is-> filename,"rb",SH_DENYNO);905 fp = _fsopen(is->szFileName,"rb",SH_DENYNO); 884 906 if(fp) { 885 907 … … 899 921 FLE_READABLE, 900 922 TRUE); 901 info = find_type(is-> filename,NULL);923 info = find_type(is->szFileName,NULL); 902 924 if(info) { 903 925 WinCheckButton(hwnd, … … 918 940 2); 919 941 } 920 fp = _fsopen(is-> filename,"ab",SH_DENYNO);942 fp = _fsopen(is->szFileName,"ab",SH_DENYNO); 921 943 if(fp) { 922 944 WinCheckButton(hwnd,FLE_WRITEABLE,TRUE); 923 945 fclose(fp); 924 946 } 925 fp = _fsopen(is-> filename,"rb",SH_DENYRW);947 fp = _fsopen(is->szFileName,"rb",SH_DENYRW); 926 948 if(!fp) 927 949 WinCheckButton(hwnd,FLE_OPEN,TRUE); … … 955 977 case FLE_SETTINGS: 956 978 is = WinQueryWindowPtr(hwnd,QWL_USER); 957 if(is && *is-> filename)958 OpenObject(is-> filename,979 if(is && *is->szFileName) 980 OpenObject(is->szFileName, 959 981 Settings, 960 982 hwnd); … … 962 984 case FLE_EAS: 963 985 is = WinQueryWindowPtr(hwnd,QWL_USER); 964 if(is && *is-> filename) {986 if(is && *is->szFileName) { 965 987 966 988 CHAR *list[2]; 967 989 968 list[0] = is-> filename;990 list[0] = is->szFileName; 969 991 list[1] = NULL; 970 992 WinDlgBox(HWND_DESKTOP, -
trunk/dll/mainwnd.c
r133 r162 7 7 8 8 Copyright (c) 1993-98 M. Kimes 9 Copyright (c) 2001, 2005 Steven H. Levine9 Copyright (c) 2001, 2005 Steven H. Levine 10 10 11 11 11 Jun 02 SHL Drop obsolete xor code … … 14 14 23 May 05 SHL Use QWL_USER 15 15 23 May 05 SHL Use datamin.h 16 25 May 05 SHL Use ULONGLONG and CommaFmtULL 16 17 17 18 ***********************************************************************/ … … 21 22 #define INCL_WINHELP 22 23 #define INCL_GPI 23 24 #define INCL_LONGLONG 24 25 #include <os2.h> 26 25 27 #include <stdarg.h> 26 28 #include <stdio.h> … … 102 104 103 105 FSALLOCATE fsa; 104 CHAR s[90], szQty[38] , *pszUM;106 CHAR s[90], szQty[38]; 105 107 ULONG ulPctFree; 106 float fltFreeQty;108 ULONGLONG ullFreeQty; 107 109 108 110 if (!DosQueryFSInfo((d - 'A') + 1, … … 111 113 sizeof(FSALLOCATE))) 112 114 { 113 fltFreeQty = (float)fsa.cUnitAvail *115 ullFreeQty = (ULONGLONG)fsa.cUnitAvail * 114 116 (fsa.cSectorUnit * fsa.cbSector); 115 if (fltFreeQty >= (1024 * 1024))116 {117 fltFreeQty /= (1024 * 1024);118 pszUM = "mb";119 }120 else if (fltFreeQty >= 1024)121 {122 fltFreeQty /= 1024;123 pszUM = "kb";124 }125 else126 pszUM = "b";127 117 ulPctFree = (fsa.cUnit && fsa.cUnitAvail) ? 128 118 (fsa.cUnitAvail * 100) / fsa.cUnit : 0; 129 commafmt(szQty,130 sizeof(szQty),131 (ULONG) fltFreeQty);119 CommaFmtULL(szQty, 120 sizeof(szQty), 121 ullFreeQty,' '); 132 122 sprintf(s, 133 "%s %s(%lu%%) free",123 "%s (%lu%%) free", 134 124 szQty, 135 pszUM,136 125 ulPctFree); 137 126 } -
trunk/dll/seeall.c
r130 r162 7 7 8 8 Copyright (c) 1993-98 M. Kimes 9 Copyright (c) 2001, 2005 Steven H. Levine9 Copyright (c) 2001, 2005 Steven H. Levine 10 10 11 11 16 Oct 02 SHL Handle large partitions … … 13 13 06 Dec 03 SHL StartSeeAll: correct malloc arg oops 14 14 23 May 05 SHL Use QWL_USER 15 25 May 05 SHL Use ULONGLONG and CommaFmtULL 15 16 16 17 ***********************************************************************/ … … 20 21 #define INCL_WIN 21 22 #define INCL_GPI 22 23 #define INCL_LONGLONG 23 24 #include <os2.h> 25 24 26 #include <stdlib.h> 25 27 #include <stdio.h> … … 27 29 #include <ctype.h> 28 30 #include <process.h> 31 29 32 #include "fm3dll.h" 30 33 #include "fm3dlg.h" … … 38 41 #pragma alloc_text(SEEALL,BuildAList,RemoveDeleted,SeeFrameWndProc,FilterList) 39 42 #pragma alloc_text(SEEALL2,SeeObjWndProc,MakeSeeObj,FindDupes,DupeDlgProc) 40 #pragma alloc_text(SEEALL3,FreeAllFilesList,DoADir,FindAll ,AFDrvsWndProc)43 #pragma alloc_text(SEEALL3,FreeAllFilesList,DoADir,FindAllThread,AFDrvsWndProc) 41 44 #pragma alloc_text(SEEALL3,StartSeeAll) 42 45 … … 90 93 USHORT size; 91 94 USHORT dupeflags; 92 ALLFILES *afhead,**afindex; 93 ULONG affiles,afalloc,afFilesToGet,longest,longestw, 94 topfile,cursored,selected,ulSelectedKB, ulSelectedBytes,afifiles, 95 lastselected,lastdirection,multiplier,lasttime; 96 CHAR stopflag,drvsflags[26],lasttarget[CCHMAXPATH], 97 comnam[CCHMAXPATH],findpath[CCHMAXPATH]; 98 LONG lMaxAscender,lMaxDescender,lMaxHeight,maxx,horzscroll; 99 BOOL fullnames,invertsort,mousecaptured; 100 HMTX ScanSem; 101 HWND hvscroll,hhscroll,hwndMenu,hwndObj,hwndClient,hwndPopup, 102 hwndStatus,hwndFrame; 95 ALLFILES *afhead; 96 ALLFILES **afindex; 97 ULONG affiles; 98 ULONG afalloc; 99 ULONG afFilesToGet; 100 ULONG longest; 101 ULONG longestw; 102 ULONG topfile; 103 ULONG cursored; 104 ULONG selected; 105 ULONGLONG ullSelectedBytes; 106 ULONG afifiles; 107 ULONG lastselected; 108 ULONG lastdirection; 109 ULONG multiplier; 110 ULONG lasttime; 111 CHAR stopflag; 112 CHAR abDrvFlags[26]; 113 CHAR szCommonName[CCHMAXPATH]; 114 CHAR szFindPath[CCHMAXPATH]; 115 LONG lMaxAscender; 116 LONG lMaxDescender; 117 LONG lMaxHeight; 118 LONG maxx; 119 LONG horzscroll; 120 BOOL fullnames; 121 BOOL invertsort; 122 BOOL mousecaptured; 123 HMTX hmtxScan; 124 HWND hvscroll; 125 HWND hhscroll; 126 HWND hwndMenu; 127 HWND hwndObj; 128 HWND hwndClient; 129 HWND hwndPopup; 130 HWND hwndStatus; 131 HWND hwndFrame; 103 132 HPS hps; 104 PFNSORT compare;133 PFNSORT pfnCompare; 105 134 MASK mask; 106 135 FATTRS fattrs; 107 LONG colors[8];136 LONG aulColors[8]; 108 137 BOOL killme; 109 138 } ALLDATA; … … 118 147 119 148 120 MRESULT EXPENTRY DupeDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) { 121 122 switch(msg) { 149 MRESULT EXPENTRY DupeDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 150 { 151 switch (msg) 152 { 123 153 case WM_INITDLG: 124 154 { … … 201 231 202 232 203 static ULONG NumLines (RECTL *rcl,ALLDATA *ad) {204 233 static ULONG NumLines (RECTL *rcl,ALLDATA *ad) 234 { 205 235 ULONG numlines; 206 236 … … 216 246 MRESULT EXPENTRY SeeObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 217 247 { 218 switch(msg) { 248 switch (msg) 249 { 219 250 case UM_MASSACTION: 220 251 { … … 1227 1258 1228 1259 1229 static VOID MakeSeeObj (VOID *args) {1230 1260 static VOID MakeSeeObj (VOID *args) 1261 { 1231 1262 HAB hab2; 1232 1263 HMQ hmq2; … … 1235 1266 QMSG qmsg2; 1236 1267 1237 if(ad) { 1268 if (ad) 1269 { 1238 1270 hab2 = WinInitialize(0); 1239 if(hab2) { 1271 if(hab2) 1272 { 1240 1273 hmq2 = WinCreateMsgQueue(hab2,256); 1241 if(hmq2) { 1274 if(hmq2) 1275 { 1242 1276 DosError(FERR_DISABLEHARDERR); 1243 1277 WinRegisterClass(hab2, … … 1284 1318 MASK mask; 1285 1319 register ULONG x,y,z; 1286 ULONG ul;1287 1320 BOOL ret; 1288 1321 ALLDATA *pAD = WinQueryWindowPtr(hwnd,QWL_USER); … … 1357 1390 if (pAD->afindex[y]->flags & AF_SELECTED) { 1358 1391 pAD->selected--; 1359 ul = pAD->afindex[y]->cbFile; 1360 pAD->ulSelectedKB -= ul >> 10; 1361 pAD->ulSelectedBytes -= ul & 0x3ff; 1392 pAD->ullSelectedBytes -= pAD->afindex[y]->cbFile; 1362 1393 pAD->afindex[y]->flags &= ~AF_SELECTED; 1363 1394 } … … 1366 1397 if (~pAD->afindex[y]->flags & AF_SELECTED) { 1367 1398 pAD->selected++; 1368 ul = pAD->afindex[y]->cbFile; 1369 pAD->ulSelectedKB += ul >> 10; 1370 pAD->ulSelectedBytes += ul & 0x3ff; 1399 pAD->ullSelectedBytes += pAD->afindex[y]->cbFile; 1371 1400 pAD->afindex[y]->flags |= AF_SELECTED; 1372 1401 } … … 1378 1407 1379 1408 1380 static VOID CollectList (HWND hwnd,CHAR **list) { 1381 1382 if(!Collector) { 1409 static VOID CollectList (HWND hwnd,CHAR **list) 1410 { 1411 if (!Collector) 1412 { 1383 1413 if(hwndMain && !fExternalCollector && !strcmp(realappname,FM3Str)) { 1384 1414 … … 1411 1441 1412 1442 1413 static VOID FreeAllFilesList (HWND hwnd) {1414 1443 static VOID FreeAllFilesList (HWND hwnd) 1444 { 1415 1445 ALLDATA *ad = WinQueryWindowPtr(hwnd,QWL_USER); 1416 1446 register ULONG x; … … 1433 1463 1434 1464 1435 static CHAR ** BuildAList (HWND hwnd) { 1436 1437 ALLDATA *ad = WinQueryWindowPtr(hwnd,QWL_USER); 1438 register ULONG x,y,z = 0; 1439 CHAR **list = NULL; 1440 INT numfiles = 0,numalloc = 0,error; 1465 static CHAR ** BuildAList (HWND hwnd) 1466 { 1467 ALLDATA *ad = WinQueryWindowPtr(hwnd,QWL_USER); 1468 ULONG x; 1469 ULONG y; 1470 ULONG z = 0; 1471 CHAR **list = NULL; 1472 INT numfiles = 0; 1473 INT numalloc = 0; 1474 INT error; 1441 1475 1442 1476 if(ad->selected) { … … 1464 1498 ALLDATA *pAD = WinQueryWindowPtr(hwnd,QWL_USER); 1465 1499 register ULONG x,y,z; 1466 ULONG ul;1467 1500 BOOL ret = TRUE; 1468 1501 BOOL didone = FALSE; … … 1484 1517 if (pAD->afindex[y]->flags & AF_SELECTED) { 1485 1518 pAD->selected--; 1486 ul = pAD->afindex[y]->cbFile; 1487 pAD->ulSelectedKB -= ul >> 10; 1488 pAD->ulSelectedBytes -= ul & 0x3ff; 1519 pAD->ullSelectedBytes -= pAD->afindex[y]->cbFile; 1489 1520 pAD->afindex[y]->flags &= ~AF_SELECTED; 1490 1521 } … … 1493 1524 if (~pAD->afindex[y]->flags & AF_SELECTED) { 1494 1525 pAD->selected++; 1495 ul = pAD->afindex[y]->cbFile; 1496 pAD->ulSelectedKB += ul >> 10;; 1497 pAD->ulSelectedBytes += ul & 0x3ff; 1526 pAD->ullSelectedBytes += pAD->afindex[y]->cbFile; 1498 1527 pAD->afindex[y]->flags |= AF_SELECTED; 1499 1528 } … … 1502 1531 if (pAD->afindex[y]->flags & AF_SELECTED) { 1503 1532 pAD->selected--; 1504 ul = pAD->afindex[y]->cbFile; 1505 pAD->ulSelectedKB -= ul >> 10; 1506 pAD->ulSelectedBytes -= ul & 0x3ff; 1533 pAD->ullSelectedBytes -= pAD->afindex[y]->cbFile; 1507 1534 pAD->afindex[y]->flags &= ~AF_SELECTED; 1508 1535 } 1509 1536 else { 1510 1537 pAD->selected++; 1511 ul = pAD->afindex[y]->cbFile; 1512 pAD->ulSelectedKB += ul >> 10; 1513 pAD->ulSelectedBytes += ul & 0x3ff; 1538 pAD->ullSelectedBytes += pAD->afindex[y]->cbFile; 1514 1539 pAD->afindex[y]->flags |= AF_SELECTED; 1515 1540 } … … 1535 1560 ALLDATA *pAD = WinQueryWindowPtr(hwnd,QWL_USER); 1536 1561 register ULONG x,z; 1537 ULONG ul;1538 1562 BOOL ret = TRUE; 1539 1563 BOOL didone = FALSE; … … 1554 1578 if (pAD->afhead[x].flags & AF_SELECTED) { 1555 1579 pAD->selected--; 1556 ul = pAD->afhead[x].cbFile; 1557 pAD->ulSelectedKB -= ul >> 10; 1558 pAD->ulSelectedBytes -= ul & 0x3ff; 1580 pAD->ullSelectedBytes -= pAD->afhead[x].cbFile; 1559 1581 pAD->afhead[x].flags &= ~AF_SELECTED; 1560 1582 } … … 1563 1585 if (~pAD->afhead[x].flags & AF_SELECTED) { 1564 1586 pAD->selected++; 1565 ul = pAD->afhead[x].cbFile; 1566 pAD->ulSelectedKB += ul >> 10; 1567 pAD->ulSelectedBytes += ul & 0x3ff; 1587 pAD->ullSelectedBytes += pAD->afhead[x].cbFile; 1568 1588 pAD->afhead[x].flags |= AF_SELECTED; 1569 1589 } … … 1572 1592 if (pAD->afhead[x].flags & AF_SELECTED) { 1573 1593 pAD->selected--; 1574 ul = pAD->afhead[x].cbFile; 1575 pAD->ulSelectedKB -= ul >> 10; 1576 pAD->ulSelectedBytes -= ul & 0x3ff; 1594 pAD->ullSelectedBytes -= pAD->afhead[x].cbFile; 1577 1595 pAD->afhead[x].flags &= ~AF_SELECTED; 1578 1596 } 1579 1597 else { 1580 1598 pAD->selected++; 1581 ul = pAD->afhead[x].cbFile; 1582 pAD->ulSelectedKB += ul >> 10; 1583 pAD->ulSelectedBytes += ul & 0x3ff; 1599 pAD->ullSelectedBytes += pAD->afhead[x].cbFile; 1584 1600 pAD->afhead[x].flags |= AF_SELECTED; 1585 1601 } … … 1599 1615 1600 1616 1601 static BOOL UpdateList (HWND hwnd,CHAR **list) {1602 1617 static BOOL UpdateList (HWND hwnd,CHAR **list) 1618 { 1603 1619 /* Updates files in the list */ 1604 1620 … … 1640 1656 ad->afhead[x].flags |= AF_DELETED; 1641 1657 } 1642 else if(isalpha(*list[z]) && ad-> drvsflags[toupper(*list[z]) - 'A']) {1658 else if(isalpha(*list[z]) && ad->abDrvFlags[toupper(*list[z]) - 'A']) { 1643 1659 didone = TRUE; 1644 1660 hdir = HDIR_CREATE; … … 1662 1678 ad->afindex = templ; 1663 1679 else { 1664 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Realloc failed.");1680 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Realloc failed."); 1665 1681 ad->stopflag = 1; 1666 1682 break; … … 1669 1685 } 1670 1686 else { 1671 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Realloc failed.");1687 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Realloc failed."); 1672 1688 ad->stopflag = 1; 1673 1689 break; … … 1695 1711 } 1696 1712 else { 1697 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Strdup failed.");1713 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Strdup failed."); 1698 1714 ad->stopflag = 1; 1699 1715 break; … … 1708 1724 1709 1725 1710 static int comparefullnames (const void *v1,const void *v2) {1711 1726 static int comparefullnames (const void *v1,const void *v2) 1727 { 1712 1728 ALLFILES *d1 = *(ALLFILES **)v1; 1713 1729 ALLFILES *d2 = *(ALLFILES **)v2; … … 1719 1735 1720 1736 1721 static int comparenames (const void *v1,const void *v2) {1722 1737 static int comparenames (const void *v1,const void *v2) 1738 { 1723 1739 ALLFILES *d1 = *(ALLFILES **)v1; 1724 1740 ALLFILES *d2 = *(ALLFILES **)v2; … … 1732 1748 1733 1749 1734 static int compareexts (const void *v1,const void *v2) {1735 1750 static int compareexts (const void *v1,const void *v2) 1751 { 1736 1752 ALLFILES *d1 = *(ALLFILES **)v1; 1737 1753 ALLFILES *d2 = *(ALLFILES **)v2; … … 1756 1772 1757 1773 1758 static int comparesizes (const void *v1,const void *v2) {1759 1774 static int comparesizes (const void *v1,const void *v2) 1775 { 1760 1776 ALLFILES *d1 = *(ALLFILES **)v1; 1761 1777 ALLFILES *d2 = *(ALLFILES **)v2; … … 1769 1785 1770 1786 1771 static int comparedates (const void *v1,const void *v2) {1772 1787 static int comparedates (const void *v1,const void *v2) 1788 { 1773 1789 ALLFILES *d1 = *(ALLFILES **)v1; 1774 1790 ALLFILES *d2 = *(ALLFILES **)v2; … … 1794 1810 1795 1811 1796 static VOID ReSort (HWND hwnd) {1797 1812 static VOID ReSort (HWND hwnd) 1813 { 1798 1814 ALLDATA *pAD = WinQueryWindowPtr(hwnd,QWL_USER); 1799 1815 register ULONG x,y; 1800 ULONG ul;1801 1816 1802 1817 pAD->selected = 0; 1803 pAD->ulSelectedKB = 0; 1804 pAD->ulSelectedBytes = 0; 1818 pAD->ullSelectedBytes = 0; 1805 1819 for (x = 0,y = 0;x < pAD->affiles;x++) { 1806 1820 if(!(pAD->afhead[x].flags & (AF_DELETED | AF_FILTERED))) { 1807 1821 if (pAD->afhead[x].flags & AF_SELECTED) { 1808 1822 pAD->selected++; 1809 ul = pAD->afhead[x].cbFile; 1810 pAD->ulSelectedKB += ul >> 10; 1811 pAD->ulSelectedBytes += ul & 0x3ff; 1823 pAD->ullSelectedBytes += pAD->afhead[x].cbFile; 1812 1824 } 1813 1825 pAD->afindex[y++] = &(pAD->afhead[x]); … … 1816 1828 pAD->afifiles = y; 1817 1829 PostMsg(hwnd,UM_SETUP3,MPVOID,MPVOID); 1818 if(!pAD->stopflag && pAD-> compare && pAD->afifiles) {1830 if(!pAD->stopflag && pAD->pfnCompare && pAD->afifiles) { 1819 1831 WinSendMsg(hwnd,UM_RESCAN,MPFROMLONG(1L),MPVOID); 1820 qsort(pAD->afindex,pAD->afifiles,sizeof(ALLFILES *),pAD-> compare);1832 qsort(pAD->afindex,pAD->afifiles,sizeof(ALLFILES *),pAD->pfnCompare); 1821 1833 } 1822 1834 } 1823 1835 1824 1836 1825 VOID FindDupes (VOID *args) {1826 1837 VOID FindDupes (VOID *args) 1838 { 1827 1839 register ULONG x,z; 1828 1840 register CHAR *px,*pz; … … 1834 1846 ALLDATA *ad = WinQueryWindowPtr(hwnd,QWL_USER); 1835 1847 1836 if(!DosRequestMutexSem(ad-> ScanSem,SEM_INDEFINITE_WAIT)) {1848 if(!DosRequestMutexSem(ad->hmtxScan,SEM_INDEFINITE_WAIT)) { 1837 1849 priority_normal(); 1838 1850 hab2 = WinInitialize(0); … … 1934 1946 } 1935 1947 PostMsg(hwnd,UM_RESCAN,MPVOID,MPVOID); 1936 DosReleaseMutexSem(ad-> ScanSem);1948 DosReleaseMutexSem(ad->hmtxScan); 1937 1949 } 1938 1950 PostMsg(hwnd,UM_CONTAINER_FILLED,MPVOID,MPVOID); … … 1944 1956 1945 1957 1946 static VOID FilterList (HWND hwnd) {1947 1958 static VOID FilterList (HWND hwnd) 1959 { 1948 1960 register ULONG x,z; 1949 1961 BOOL ret; … … 2023 2035 2024 2036 2025 static ULONG RemoveDeleted (HWND hwnd) {2026 2037 static ULONG RemoveDeleted (HWND hwnd) 2038 { 2027 2039 ALLDATA *pAD = WinQueryWindowPtr(hwnd,QWL_USER); 2028 2040 ULONG oldaffiles = pAD->affiles; 2029 2041 register ULONG x,y; 2030 ULONG ul;2031 2042 2032 2043 for (x = 0;x < pAD->affiles;x++) { … … 2038 2049 ~pAD->afhead[y].flags & AF_FILTERED) { 2039 2050 pAD->selected--; 2040 ul = pAD->afhead[y].cbFile; 2041 pAD->ulSelectedKB -= ul >> 10; 2042 pAD->ulSelectedBytes -= ul & 0x3ff; 2051 pAD->ullSelectedBytes -= pAD->afhead[y].cbFile; 2043 2052 } 2044 2053 free(pAD->afhead[y].fullname); … … 2072 2081 2073 2082 2074 static VOID DoADir (HWND hwnd,CHAR *pathname) {2075 2083 static VOID DoADir (HWND hwnd,CHAR *pathname) 2084 { 2076 2085 ALLDATA *ad = WinQueryWindowPtr(hwnd,QWL_USER); 2077 2086 CHAR *filename,*enddir; … … 2084 2093 filename = malloc(CCHMAXPATH); 2085 2094 if(!filename) { 2086 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Malloc filename failed.");2095 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Malloc filename failed."); 2087 2096 return; 2088 2097 } … … 2095 2104 if(!pffb) { 2096 2105 free(filename); 2097 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Malloc pffb failed.");2106 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Malloc pffb failed."); 2098 2107 return; 2099 2108 } … … 2140 2149 } 2141 2150 else { 2142 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Realloc failed.");2151 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Realloc failed."); 2143 2152 ad->stopflag = 1; 2144 2153 break; … … 2161 2170 } 2162 2171 else { 2163 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Strdup failed.");2172 // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"Strdup failed."); 2164 2173 ad->stopflag = 1; 2165 2174 break; … … 2178 2187 2179 2188 2180 static VOID FindAll (VOID *args) {2181 2189 static VOID FindAllThread (VOID *args) 2190 { 2182 2191 ULONG ulDriveNum,ulDriveMap,x; 2183 2192 CHAR startname[] = " :\\"; … … 2187 2196 ALLDATA *ad = WinQueryWindowPtr(hwnd,QWL_USER); 2188 2197 2189 if(!DosRequestMutexSem(ad->ScanSem,SEM_INDEFINITE_WAIT)) { 2198 if(!DosRequestMutexSem(ad->hmtxScan,SEM_INDEFINITE_WAIT)) 2199 { 2190 2200 priority_normal(); 2191 2201 hab2 = WinInitialize(0); 2192 if(hab2) { 2202 if(hab2) 2203 { 2193 2204 hmq2 = WinCreateMsgQueue(hab2,0); 2194 if(hmq2) { 2205 if(hmq2) 2206 { 2195 2207 WinCancelShutdown(hmq2,TRUE); 2196 2208 ad->afFilesToGet = min(FilesToGet,128); 2197 if(!*ad-> findpath) {2209 if(!*ad->szFindPath) { 2198 2210 DosError(FERR_DISABLEHARDERR); 2199 if(!DosQCurDisk(&ulDriveNum,&ulDriveMap)) { 2200 for(x = 2L;x < 26L && !ad->stopflag;x++) { 2201 if((ulDriveMap & (1L << x)) && ad->drvsflags[x]) { 2211 if(!DosQCurDisk(&ulDriveNum,&ulDriveMap)) 2212 { 2213 for(x = 2L;x < 26L && !ad->stopflag;x++) 2214 { 2215 if((ulDriveMap & (1L << x)) && ad->abDrvFlags[x]) { 2202 2216 *startname = (CHAR)(x + 'A'); 2203 2217 DoADir(hwnd,startname); … … 2209 2223 } 2210 2224 else 2211 DoADir(hwnd,ad-> findpath);2225 DoADir(hwnd,ad->szFindPath); 2212 2226 DosPostEventSem(CompactSem); 2213 2227 } … … 2232 2246 ReSort(hwnd); 2233 2247 } 2234 DosReleaseMutexSem(ad-> ScanSem);2248 DosReleaseMutexSem(ad->hmtxScan); 2235 2249 } 2236 2250 PostMsg(hwnd,UM_CONTAINER_FILLED,MPVOID,MPVOID); … … 2242 2256 2243 2257 2244 MRESULT EXPENTRY AFDrvsWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) { 2245 2246 switch(msg) { 2258 MRESULT EXPENTRY AFDrvsWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 2259 { 2260 switch (msg) 2261 { 2247 2262 case WM_INITDLG: 2248 2263 if(mp2) { … … 2265 2280 MPFROM2SHORT(LIT_END,0), 2266 2281 MPFROMP(startname)); 2267 if(sSelect >= 0 && ad-> drvsflags[x])2282 if(sSelect >= 0 && ad->abDrvFlags[x]) 2268 2283 WinSendDlgItemMsg(hwnd,DRVS_LISTBOX,LM_SELECTITEM, 2269 2284 MPFROM2SHORT(sSelect,0), … … 2299 2314 ALLDATA *ad = WinQueryWindowPtr(hwnd,QWL_USER); 2300 2315 2301 memset(ad-> drvsflags,0,sizeof(ad->drvsflags));2316 memset(ad->abDrvFlags,0,sizeof(ad->abDrvFlags)); 2302 2317 sSelect = (SHORT)WinSendDlgItemMsg(hwnd,DRVS_LISTBOX, 2303 2318 LM_QUERYSELECTION, … … 2309 2324 MPFROM2SHORT(sSelect,2), 2310 2325 MPFROMP(filename)) && *filename) 2311 ad-> drvsflags[*filename - 'A'] = 1;2326 ad->abDrvFlags[*filename - 'A'] = 1; 2312 2327 sSelect = (SHORT)WinSendDlgItemMsg(hwnd,DRVS_LISTBOX, 2313 2328 LM_QUERYSELECTION, … … 2316 2331 } 2317 2332 for(x = 2L;x < 26L;x++) { 2318 if(ad-> drvsflags[x]) {2333 if(ad->abDrvFlags[x]) { 2319 2334 WinDismissDlg(hwnd,1); 2320 2335 return 0; … … 2342 2357 2343 2358 2344 static HPS InitWindow (HWND hwnd) {2345 2359 static HPS InitWindow (HWND hwnd) 2360 { 2346 2361 ALLDATA *ad = WinQueryWindowPtr(hwnd,QWL_USER); 2347 2362 HPS hps = (HPS)0; … … 2457 2472 2458 2473 2459 MRESULT EXPENTRY SeeStatusProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {2460 2474 MRESULT EXPENTRY SeeStatusProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 2475 { 2461 2476 switch(msg) { 2462 2477 case WM_CREATE: … … 2498 2513 2499 2514 2500 MRESULT EXPENTRY SeeFrameWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {2501 2515 MRESULT EXPENTRY SeeFrameWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 2516 { 2502 2517 PFNWP oldproc = (PFNWP)WinQueryWindowPtr(hwnd,QWL_USER); 2503 2518 … … 2586 2601 2587 2602 2588 MRESULT EXPENTRY SeeAllWndProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) {2589 2603 MRESULT EXPENTRY SeeAllWndProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) 2604 { 2590 2605 ALLDATA *pAD = WinQueryWindowPtr(hwnd,QWL_USER); 2591 ULONG ul;2592 2606 2593 2607 switch (msg) { … … 2605 2619 *(pAD->mask.prompt) = 0; 2606 2620 WinSetWindowPtr(hwnd,QWL_USER,(PVOID)pAD); 2607 pAD-> compare = comparenames;2621 pAD->pfnCompare = comparenames; 2608 2622 if(Firsttime) { 2609 2623 … … 2657 2671 switch(SortType) { 2658 2672 case IDM_SORTEASIZE: 2659 pAD-> compare = (PFNSORT)NULL;2673 pAD->pfnCompare = (PFNSORT)NULL; 2660 2674 break; 2661 2675 case IDM_SORTNAME: 2662 pAD-> compare = comparefullnames;2676 pAD->pfnCompare = comparefullnames; 2663 2677 break; 2664 2678 case IDM_SORTFILENAME: 2665 pAD-> compare = comparenames;2679 pAD->pfnCompare = comparenames; 2666 2680 break; 2667 2681 case IDM_SORTSIZE: 2668 pAD-> compare = comparesizes;2682 pAD->pfnCompare = comparesizes; 2669 2683 break; 2670 2684 case IDM_SORTLWDATE: 2671 pAD-> compare = comparedates;2685 pAD->pfnCompare = comparedates; 2672 2686 break; 2673 2687 case IDM_SORTFIRST: 2674 pAD-> compare = compareexts;2688 pAD->pfnCompare = compareexts; 2675 2689 break; 2676 2690 } … … 2681 2695 pAD->cursored = pAD->topfile = 1; 2682 2696 pAD->fattrs.usCodePage = Codepage; 2683 memcpy(pAD-> colors,Colors,sizeof(LONG) * COLORS_MAX);2697 memcpy(pAD->aulColors,Colors,sizeof(LONG) * COLORS_MAX); 2684 2698 pAD->hwndMenu = WinWindowFromID(WinQueryWindow(hwnd,QW_PARENT), 2685 2699 FID_MENU); … … 2705 2719 pAD->multiplier = 1; 2706 2720 if(_beginthread(MakeSeeObj,NULL,122880,(PVOID)pAD) != -1) { 2707 if(!DosCreateMutexSem(NULL,&pAD-> ScanSem,0L,FALSE)) {2721 if(!DosCreateMutexSem(NULL,&pAD->hmtxScan,0L,FALSE)) { 2708 2722 pAD->hwndStatus = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT), 2709 2723 GetPString(IDS_WCSEESTATUS), … … 2740 2754 if(pAD) { 2741 2755 if(mp1 && *((CHAR *)mp1)) 2742 strcpy(pAD-> findpath,(CHAR *)mp1);2756 strcpy(pAD->szFindPath,(CHAR *)mp1); 2743 2757 else { 2744 2758 if(!WinDlgBox(HWND_DESKTOP,hwnd,AFDrvsWndProc, … … 2748 2762 } 2749 2763 } 2750 if(_beginthread(FindAll ,NULL,524288,(PVOID)hwnd) == -1)2764 if(_beginthread(FindAllThread,NULL,524288,(PVOID)hwnd) == -1) 2751 2765 PostMsg(hwnd,WM_CLOSE,MPVOID,MPVOID); 2752 2766 else { … … 2765 2779 APIRET rc; 2766 2780 2767 rc = DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN);2781 rc = DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN); 2768 2782 if(!rc) { 2769 2783 WinSetPointer(HWND_DESKTOP,hptrBusy); … … 2774 2788 WinInvalidateRect(hwnd,NULL,FALSE); 2775 2789 } 2776 DosReleaseMutexSem(pAD-> ScanSem);2790 DosReleaseMutexSem(pAD->hmtxScan); 2777 2791 WinSetPointer(HWND_DESKTOP,hptrArrow); 2778 2792 } … … 2790 2804 strcpy(s, 2791 2805 GetPString(IDS_SEEALLTITLETEXT)); 2792 if(!*pAD-> findpath) {2806 if(!*pAD->szFindPath) { 2793 2807 DosError(FERR_DISABLEHARDERR); 2794 2808 if(!DosQCurDisk(&ulDriveNum,&ulDriveMap)) { 2795 2809 for(x = 2L;x < 26L && !pAD->stopflag;x++) { 2796 if((ulDriveMap & (1L << x)) && pAD-> drvsflags[x]) {2810 if((ulDriveMap & (1L << x)) && pAD->abDrvFlags[x]) { 2797 2811 sprintf(&s[strlen(s)], 2798 2812 "%s%c:", … … 2808 2822 else { 2809 2823 strcat(s," ("); 2810 strcat(s,pAD-> findpath);2824 strcat(s,pAD->szFindPath); 2811 2825 strcat(s,")"); 2812 2826 } … … 2855 2869 2856 2870 case UM_SETUP4: 2857 // fprintf(stderr,"Seeall: UM_SETUP4\n");2871 // fprintf(stderr,"Seeall: UM_SETUP4\n"); 2858 2872 if(pAD) 2859 2873 pAD->killme = TRUE; … … 2865 2879 // fprintf(stderr,"Seeall: UM_RESCAN\n"); 2866 2880 if(pAD && !pAD->stopflag) { 2867 if (DosRequestMutexSem(pAD->ScanSem,SEM_IMMEDIATE_RETURN)) {2868 2881 if (DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) 2882 { 2869 2883 CHAR s[CCHMAXPATH + 80],tm[34]; 2870 2884 … … 2873 2887 GetPString(IDS_SORTINGTEXT)); 2874 2888 if(pAD->afifiles) { 2875 *tm = 0;2876 2889 commafmt(tm,sizeof(tm),pAD->afifiles); 2877 2890 strcat(s,tm); … … 2882 2895 GetPString(IDS_WORKINGTEXT)); 2883 2896 if(pAD->affiles) { 2884 *tm = 0;2885 2897 commafmt(tm,sizeof(tm),pAD->affiles); 2886 2898 strcat(s,tm); … … 2893 2905 WinSetWindowText(pAD->hwndStatus,s); 2894 2906 } 2895 else {2896 2907 else 2908 { 2897 2909 CHAR s[(CCHMAXPATH * 2) + 80],tm[34],ts[34],tb[34]; 2898 2910 ULONG y; … … 2902 2914 GetPString(IDS_SORTINGTEXT)); 2903 2915 if(pAD->afifiles) { 2904 *tm = 0;2905 2916 commafmt(tm,sizeof(tm),pAD->afifiles); 2906 2917 strcat(s,tm); … … 2911 2922 } 2912 2923 } 2913 else if(pAD->afifiles) { 2924 else if(pAD->afifiles) 2925 { 2914 2926 y = (pAD->invertsort) ? (pAD->afifiles - 1) - (pAD->cursored - 1) : 2915 2927 pAD->cursored - 1; 2916 *tm = *ts = *tb = 0;2917 2928 commafmt(tm,sizeof(tm),pAD->afifiles); 2918 2929 commafmt(ts,sizeof(ts),pAD->selected); 2919 2920 // Normalize 2921 ul = pAD->ulSelectedBytes; 2922 if ((long)ul > 0) { 2923 pAD->ulSelectedKB += ul >> 10; 2924 pAD->ulSelectedBytes = ul & 0x3ff; 2925 } 2926 else if ((long)ul < 0) { 2927 ul = -ul; 2928 pAD->ulSelectedKB -= (ul >> 10) + 1; 2929 pAD->ulSelectedBytes = 1024 - (ul & 0x3ff); 2930 } 2931 2932 commafmt(tb,sizeof(tb),pAD->ulSelectedKB); 2930 CommaFmtULL(tb,sizeof(tb),pAD->ullSelectedBytes,' '); 2933 2931 sprintf(s, 2934 " %s %s%s%s %s %s (%s k) %s %s",2932 " %s %s%s%s %s %s (%s) %s %s", 2935 2933 tm, 2936 2934 GetPString(IDS_FILETEXT), … … 2958 2956 NullStr); 2959 2957 WinSetWindowText(pAD->hwndStatus,s); 2960 DosReleaseMutexSem(pAD-> ScanSem);2958 DosReleaseMutexSem(pAD->hmtxScan); 2961 2959 } 2962 2960 } … … 2964 2962 2965 2963 case UM_SETUP: 2966 // fprintf(stderr,"Seeall: UM_SETUP\n");2964 // fprintf(stderr,"Seeall: UM_SETUP\n"); 2967 2965 if(pAD) { 2968 2966 WinSendMsg(pAD->hvscroll,SBM_SETTHUMBSIZE,MPFROM2SHORT(1,1), … … 2989 2987 if(SHORT1FROMMP(mp1) & KC_VIRTUALKEY) { 2990 2988 pAD->lasttime = 0; 2991 *pAD-> comnam= 0;2989 *pAD->szCommonName = 0; 2992 2990 switch(SHORT2FROMMP(mp2)) { 2993 2991 case VK_DELETE: … … 3121 3119 MPFROM2SHORT(0,0)); 3122 3120 pAD->lasttime = 0; 3123 *pAD-> comnam= 0;3121 *pAD->szCommonName = 0; 3124 3122 break; 3125 3123 default: 3126 3124 thistime = WinQueryMsgTime(WinQueryAnchorBlock(hwnd)); 3127 3125 if(thistime > pAD->lasttime + 1000) 3128 *pAD-> comnam= 0;3126 *pAD->szCommonName = 0; 3129 3127 pAD->lasttime = thistime; 3130 3128 KbdRetry: 3131 len = strlen(pAD-> comnam);3129 len = strlen(pAD->szCommonName); 3132 3130 if(len >= CCHMAXPATH - 1) { 3133 *pAD-> comnam= 0;3131 *pAD->szCommonName = 0; 3134 3132 len = 0; 3135 3133 } 3136 pAD-> comnam[len] = toupper(SHORT1FROMMP(mp2));3137 pAD-> comnam[len + 1] = 0;3134 pAD->szCommonName[len] = toupper(SHORT1FROMMP(mp2)); 3135 pAD->szCommonName[len + 1] = 0; 3138 3136 for(x = pAD->cursored - (len > 0);x < pAD->afifiles;x++) { 3139 3137 y = (pAD->invertsort) ? (pAD->afifiles - 1) - x : x; 3140 3138 if(pAD->fullnames) { 3141 if(!strnicmp(pAD->afindex[y]->fullname,pAD-> comnam,3139 if(!strnicmp(pAD->afindex[y]->fullname,pAD->szCommonName, 3142 3140 len + 1)) { 3143 3141 found = TRUE; … … 3146 3144 } 3147 3145 else { 3148 if(!strnicmp(pAD->afindex[y]->filename,pAD-> comnam,3146 if(!strnicmp(pAD->afindex[y]->filename,pAD->szCommonName, 3149 3147 len + 1)) { 3150 3148 found = TRUE; … … 3157 3155 y = (pAD->invertsort) ? (pAD->afifiles - 1) - x : x; 3158 3156 if(pAD->fullnames) { 3159 if(!strnicmp(pAD->afindex[y]->fullname,pAD-> comnam,3157 if(!strnicmp(pAD->afindex[y]->fullname,pAD->szCommonName, 3160 3158 len + 1)) { 3161 3159 found = TRUE; … … 3164 3162 } 3165 3163 else { 3166 if(!strnicmp(pAD->afindex[y]->filename,pAD-> comnam,3164 if(!strnicmp(pAD->afindex[y]->filename,pAD->szCommonName, 3167 3165 len + 1)) { 3168 3166 found = TRUE; … … 3193 3191 } 3194 3192 else { 3195 *pAD-> comnam= 0;3193 *pAD->szCommonName = 0; 3196 3194 pAD->lasttime = 0; 3197 3195 if(len) // retry as first letter if no match … … 3236 3234 case WM_BUTTON1MOTIONSTART: 3237 3235 if(pAD && !pAD->stopflag && 3238 !DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN)) {3236 !DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) { 3239 3237 pAD->mousecaptured = TRUE; 3240 3238 pAD->lastselected = (ULONG)-1; 3241 3239 pAD->lastdirection = 0; 3242 3240 WinSetCapture(HWND_DESKTOP,hwnd); 3243 DosReleaseMutexSem(pAD-> ScanSem);3241 DosReleaseMutexSem(pAD->hmtxScan); 3244 3242 WinSendMsg(hwnd,WM_BUTTON1CLICK,mp1,MPFROM2SHORT(TRUE,0)); 3245 3243 } … … 3290 3288 pAD->afindex[y]->flags &= ~AF_SELECTED; 3291 3289 pAD->selected--; 3292 ul = pAD->afindex[y]->cbFile; 3293 pAD->ulSelectedKB -= ul >> 10; 3294 pAD->ulSelectedBytes -= ul & 0x3ff; 3290 pAD->ullSelectedBytes -= pAD->afindex[y]->cbFile; 3295 3291 } 3296 3292 else { 3297 3293 pAD->afindex[y]->flags |= AF_SELECTED; 3298 3294 pAD->selected++; 3299 ul = pAD->afindex[y]->cbFile; 3300 pAD->ulSelectedKB += ul >> 10; 3301 pAD->ulSelectedBytes += ul & 0x3ff; 3295 pAD->ullSelectedBytes += pAD->afindex[y]->cbFile; 3302 3296 } 3303 3297 PaintLine(hwnd,pAD->hps,x,pAD->topfile,&Rectl); … … 3356 3350 shiftstate = (SHORT2FROMMP(mp2) & (KC_SHIFT | KC_ALT | KC_CTRL)); 3357 3351 if(pAD && !pAD->stopflag && 3358 !DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN)) {3352 !DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) { 3359 3353 3360 3354 ULONG numlines,whichfile,y,wascursored; … … 3386 3380 pAD->afindex[y]->flags &= ~AF_SELECTED; 3387 3381 pAD->selected--; 3388 ul = pAD->afindex[y]->cbFile; 3389 pAD->ulSelectedKB -= ul >> 10; 3390 pAD->ulSelectedBytes -= ul & 0x3ff; 3382 pAD->ullSelectedBytes -= pAD->afindex[y]->cbFile; 3391 3383 } 3392 3384 else { 3393 3385 pAD->afindex[y]->flags |= AF_SELECTED; 3394 3386 pAD->selected++; 3395 ul = pAD->afindex[y]->cbFile; 3396 pAD->ulSelectedKB += ul >> 10; 3397 pAD->ulSelectedBytes += ul & 0x3ff; 3387 pAD->ullSelectedBytes += pAD->afindex[y]->cbFile; 3398 3388 } 3399 3389 PaintLine(hwnd,pAD->hps,whichfile,pAD->topfile,&Rectl); … … 3417 3407 } 3418 3408 } 3419 DosReleaseMutexSem(pAD-> ScanSem);3409 DosReleaseMutexSem(pAD->hmtxScan); 3420 3410 } 3421 3411 break; … … 3459 3449 APIRET rc; 3460 3450 3461 rc = DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN);3451 rc = DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN); 3462 3452 WinEnableMenuItem(pAD->hwndPopup,IDM_EAS,(rc == 0 && 3463 3453 pAD->selected != 0)); … … 3513 3503 pAD->affiles != 0)); 3514 3504 if(!rc) 3515 DosReleaseMutexSem(pAD-> ScanSem);3505 DosReleaseMutexSem(pAD->hmtxScan); 3516 3506 if(WinPopupMenu(hwnd,hwnd,pAD->hwndPopup,SHORT1FROMMP(mp1), 3517 3507 SHORT2FROMMP(mp1),0, … … 3549 3539 3550 3540 case WM_PAINT: 3551 // fprintf(stderr,"Seeall: WM_PAINT\n");3541 // fprintf(stderr,"Seeall: WM_PAINT\n"); 3552 3542 if(pAD) { 3553 3543 … … 3563 3553 WinFillRect(hpsp,&Rectl,standardcolors[Colors[COLORS_NORMALBACK]]); 3564 3554 if(!pAD->stopflag && 3565 !DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN)) {3555 !DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) { 3566 3556 WinQueryWindowRect(hwnd,&Rectl); 3567 3557 numlines = NumLines(&Rectl,pAD); … … 3664 3654 } 3665 3655 } 3666 DosReleaseMutexSem(pAD-> ScanSem);3656 DosReleaseMutexSem(pAD->hmtxScan); 3667 3657 } 3668 3658 WinEndPaint(hpsp); … … 3737 3727 // fprintf(stderr,"Seeall: WM_VSCROLL\n"); 3738 3728 if(pAD && !pAD->stopflag && 3739 !DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN)) {3729 !DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) { 3740 3730 3741 3731 ULONG numlines,wascursored; … … 3834 3824 pAD->lMaxDescender); 3835 3825 WinFillRect(pAD->hps,&iRectl, 3836 standardcolors[pAD-> colors[COLORS_NORMALBACK]]);3826 standardcolors[pAD->aulColors[COLORS_NORMALBACK]]); 3837 3827 PaintLine(hwnd,pAD->hps,pAD->topfile - 1,pAD->topfile,&Rectl); 3838 3828 if(pAD->cursored != pAD->topfile) … … 3877 3867 } 3878 3868 } 3879 DosReleaseMutexSem(pAD-> ScanSem);3869 DosReleaseMutexSem(pAD->hmtxScan); 3880 3870 } 3881 3871 break; … … 3888 3878 APIRET rc; 3889 3879 3890 rc = DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN);3880 rc = DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN); 3891 3881 WinEnableMenuItem((HWND)mp2,IDM_DUPES,(rc == 0)); 3892 3882 WinEnableMenuItem((HWND)mp2,IDM_COLLECT,(rc == 0 && … … 3931 3921 pAD->selected != 0)); 3932 3922 if(!rc) 3933 DosReleaseMutexSem(pAD-> ScanSem);3923 DosReleaseMutexSem(pAD->hmtxScan); 3934 3924 } 3935 3925 break; … … 3939 3929 APIRET rc; 3940 3930 3941 rc = DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN);3931 rc = DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN); 3942 3932 WinEnableMenuItem((HWND)mp2,IDM_SELECTALL,(rc == 0 && 3943 3933 pAD->afifiles != 0 && … … 3959 3949 pAD->afifiles != 0)); 3960 3950 if(!rc) 3961 DosReleaseMutexSem(pAD-> ScanSem);3951 DosReleaseMutexSem(pAD->hmtxScan); 3962 3952 } 3963 3953 break; … … 3967 3957 APIRET rc; 3968 3958 3969 rc = DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN);3959 rc = DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN); 3970 3960 WinEnableMenuItem((HWND)mp2,IDM_SORTNAME,(rc == 0)); 3971 3961 WinEnableMenuItem((HWND)mp2,IDM_SORTEASIZE,(rc == 0)); … … 3975 3965 WinEnableMenuItem((HWND)mp2,IDM_SORTFIRST,(rc == 0)); 3976 3966 if(!rc) 3977 DosReleaseMutexSem(pAD-> ScanSem);3967 DosReleaseMutexSem(pAD->hmtxScan); 3978 3968 } 3979 3969 WinCheckMenuItem((HWND)mp2,IDM_SORTNAME, 3980 (pAD-> compare == comparefullnames));3970 (pAD->pfnCompare == comparefullnames)); 3981 3971 WinCheckMenuItem((HWND)mp2,IDM_SORTEASIZE, 3982 (pAD-> compare == (PFNSORT)NULL));3972 (pAD->pfnCompare == (PFNSORT)NULL)); 3983 3973 WinCheckMenuItem((HWND)mp2,IDM_SORTSIZE, 3984 (pAD-> compare == comparesizes));3974 (pAD->pfnCompare == comparesizes)); 3985 3975 WinCheckMenuItem((HWND)mp2,IDM_SORTLWDATE, 3986 (pAD-> compare == comparedates));3976 (pAD->pfnCompare == comparedates)); 3987 3977 WinCheckMenuItem((HWND)mp2,IDM_SORTFILENAME, 3988 (pAD-> compare == comparenames));3978 (pAD->pfnCompare == comparenames)); 3989 3979 WinCheckMenuItem((HWND)mp2,IDM_SORTREVERSE,pAD->invertsort); 3990 3980 WinCheckMenuItem((HWND)mp2,IDM_SORTFIRST, 3991 (pAD-> compare == compareexts));3981 (pAD->pfnCompare == compareexts)); 3992 3982 break; 3993 3983 … … 3996 3986 APIRET rc; 3997 3987 3998 rc = DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN);3988 rc = DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN); 3999 3989 WinEnableMenuItem((HWND)mp2,IDM_RESCAN,(rc == 0)); 4000 3990 WinEnableMenuItem((HWND)mp2,IDM_FILTER,(rc == 0 && 4001 3991 pAD->affiles != 0)); 4002 3992 if(!rc) 4003 DosReleaseMutexSem(pAD-> ScanSem);3993 DosReleaseMutexSem(pAD->hmtxScan); 4004 3994 } 4005 3995 WinCheckMenuItem((HWND)mp2,IDM_SHOWLNAMES,pAD->fullnames); … … 4019 4009 case IDM_DUPES: 4020 4010 if(!pAD->stopflag && 4021 !DosRequestMutexSem(pAD-> ScanSem,4011 !DosRequestMutexSem(pAD->hmtxScan, 4022 4012 SEM_IMMEDIATE_RETURN)) { 4023 4013 pAD->dupeflags = (USHORT)WinDlgBox(HWND_DESKTOP, … … 4034 4024 DosBeep(50,100); 4035 4025 } 4036 DosReleaseMutexSem(pAD-> ScanSem);4026 DosReleaseMutexSem(pAD->hmtxScan); 4037 4027 } 4038 4028 break; … … 4046 4036 co.size = sizeof(co); 4047 4037 co.numcolors = COLORS_MAX; 4048 co.colors = pAD-> colors;4038 co.colors = pAD->aulColors; 4049 4039 co.descriptions = IDS_SACOLORS1TEXT; 4050 4040 co.origs = temp; 4051 4041 co.prompt = IDS_SACOLORSPROMPTTEXT; 4052 4042 memcpy(temp, 4053 pAD-> colors,4043 pAD->aulColors, 4054 4044 sizeof(LONG) * COLORS_MAX); 4055 4045 if(WinDlgBox(HWND_DESKTOP, … … 4060 4050 (PVOID)&co)) { 4061 4051 memcpy(Colors, 4062 pAD-> colors,4052 pAD->aulColors, 4063 4053 sizeof(LONG) * COLORS_MAX); 4064 4054 PrfWriteProfileData(fmprof, 4065 4055 appname, 4066 4056 "Seeall.Colors", 4067 &pAD-> colors,4057 &pAD->aulColors, 4068 4058 sizeof(LONG) * COLORS_MAX); 4069 4059 WinInvalidateRect(hwnd, … … 4143 4133 case IDM_SORTFIRST: 4144 4134 if(!pAD->stopflag && 4145 !DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN)) {4135 !DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) { 4146 4136 { 4147 4137 USHORT dummy = SHORT1FROMMP(mp1); … … 4158 4148 switch(SHORT1FROMMP(mp1)) { 4159 4149 case IDM_SORTEASIZE: 4160 pAD-> compare = (PFNSORT)NULL;4150 pAD->pfnCompare = (PFNSORT)NULL; 4161 4151 ReSort(hwnd); 4162 4152 break; 4163 4153 4164 4154 case IDM_SORTNAME: 4165 pAD-> compare = comparefullnames;4155 pAD->pfnCompare = comparefullnames; 4166 4156 ReSort(hwnd); 4167 4157 break; 4168 4158 4169 4159 case IDM_SORTFILENAME: 4170 pAD-> compare = comparenames;4160 pAD->pfnCompare = comparenames; 4171 4161 ReSort(hwnd); 4172 4162 break; 4173 4163 4174 4164 case IDM_SORTSIZE: 4175 pAD-> compare = comparesizes;4165 pAD->pfnCompare = comparesizes; 4176 4166 ReSort(hwnd); 4177 4167 break; 4178 4168 4179 4169 case IDM_SORTLWDATE: 4180 pAD-> compare = comparedates;4170 pAD->pfnCompare = comparedates; 4181 4171 ReSort(hwnd); 4182 4172 break; 4183 4173 4184 4174 case IDM_SORTFIRST: 4185 pAD-> compare = compareexts;4175 pAD->pfnCompare = compareexts; 4186 4176 ReSort(hwnd); 4187 4177 break; 4188 4178 } 4189 4179 WinSetPointer(HWND_DESKTOP,hptrArrow); 4190 DosReleaseMutexSem(pAD-> ScanSem);4180 DosReleaseMutexSem(pAD->hmtxScan); 4191 4181 WinInvalidateRect(hwnd,NULL,FALSE); 4192 4182 } … … 4195 4185 case IDM_FILTER: 4196 4186 if(!pAD->stopflag && 4197 !DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN)) {4187 !DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) { 4198 4188 FilterList(hwnd); 4199 DosReleaseMutexSem(pAD-> ScanSem);4189 DosReleaseMutexSem(pAD->hmtxScan); 4200 4190 } 4201 4191 break; … … 4203 4193 case IDM_RESCAN: 4204 4194 if(!pAD->stopflag && 4205 !DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN)) {4195 !DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) { 4206 4196 4207 4197 CHAR tempflags[26]; 4208 4198 4209 memcpy(tempflags,pAD-> drvsflags,sizeof(tempflags));4199 memcpy(tempflags,pAD->abDrvFlags,sizeof(tempflags)); 4210 4200 if(!WinDlgBox(HWND_DESKTOP,hwnd,AFDrvsWndProc,FM3ModHandle, 4211 4201 DRVS_FRAME,(PVOID)pAD)) { 4212 memcpy(pAD-> drvsflags,tempflags,sizeof(tempflags));4213 *pAD-> findpath = 0;4214 DosReleaseMutexSem(pAD-> ScanSem);4202 memcpy(pAD->abDrvFlags,tempflags,sizeof(tempflags)); 4203 *pAD->szFindPath = 0; 4204 DosReleaseMutexSem(pAD->hmtxScan); 4215 4205 break; 4216 4206 } … … 4222 4212 pAD->cursored = 1; 4223 4213 pAD->selected = 0; 4224 pAD->ulSelectedKB = 0; 4225 pAD->ulSelectedBytes = 0; 4214 pAD->ullSelectedBytes = 0; 4226 4215 pAD->maxx = pAD->horzscroll = 0; 4227 4216 FreeAllFilesList(hwnd); 4228 4217 pAD->stopflag = 0; 4229 if(_beginthread(FindAll ,NULL,524288,(PVOID)hwnd) != -1) {4230 DosReleaseMutexSem(pAD-> ScanSem);4218 if(_beginthread(FindAllThread,NULL,524288,(PVOID)hwnd) != -1) { 4219 DosReleaseMutexSem(pAD->hmtxScan); 4231 4220 DosSleep(100); 4232 4221 WinInvalidateRect(hwnd,NULL,FALSE); … … 4237 4226 DosBeep(250,100); 4238 4227 WinDestroyWindow(WinQueryWindow(hwnd,QW_PARENT)); 4239 DosReleaseMutexSem(pAD-> ScanSem);4228 DosReleaseMutexSem(pAD->hmtxScan); 4240 4229 } 4241 4230 } … … 4276 4265 case IDM_OPENDEFAULT: 4277 4266 if(!pAD->stopflag && 4278 !DosRequestMutexSem(pAD-> ScanSem,SEM_IMMEDIATE_RETURN)) {4267 !DosRequestMutexSem(pAD->hmtxScan,SEM_IMMEDIATE_RETURN)) { 4279 4268 switch(SHORT1FROMMP(mp1)) { 4280 4269 case IDM_SELECTALL: … … 4396 4385 break; 4397 4386 } 4398 DosReleaseMutexSem(pAD-> ScanSem);4387 DosReleaseMutexSem(pAD->hmtxScan); 4399 4388 } 4400 4389 else if(SHORT1FROMMP(mp1) == IDM_COLLECTOR) { … … 4434 4423 if(pAD) { 4435 4424 pAD->stopflag = 1; 4436 if(pAD-> ScanSem) {4437 DosRequestMutexSem(pAD-> ScanSem,15000L);4438 DosCloseMutexSem(pAD-> ScanSem);4425 if(pAD->hmtxScan) { 4426 DosRequestMutexSem(pAD->hmtxScan,15000L); 4427 DosCloseMutexSem(pAD->hmtxScan); 4439 4428 } 4440 4429 if(pAD->hwndPopup) … … 4480 4469 CHAR *pszStartPath) // pathname or NULL 4481 4470 { 4482 4483 4471 HWND hwndFrame = (HWND)0,hwndClient; 4484 4472 ULONG FrameFlags = FCF_TITLEBAR | FCF_SYSMENU | … … 4501 4489 if(hwndFrame) { 4502 4490 static CHAR *pszDir; 4503 if(standalone) { 4504 if(!PostMsg(WinWindowFromID(hwndFrame,FID_CLIENT), 4505 UM_SETUP4, 4506 MPVOID, 4507 MPVOID)) { 4491 if (standalone) 4492 { 4493 if (!PostMsg(WinWindowFromID(hwndFrame,FID_CLIENT), 4494 UM_SETUP4, 4495 MPVOID, 4496 MPVOID)) 4497 { 4508 4498 PostMsg((HWND)0, 4509 4499 WM_QUIT, … … 4513 4503 } 4514 4504 } 4515 if (pszStartPath) { 4505 if (pszStartPath) 4506 { 4516 4507 // Needs to be static for other thread 4517 4508 if (!pszDir)
Note:
See TracChangeset
for help on using the changeset viewer.
