Changeset 328 for trunk/dll/undel.c
- Timestamp:
- Jul 25, 2006, 8:37:24 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/dll/undel.c (modified) (18 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/undel.c
r161 r328 5 5 6 6 Copyright (c) 1993-98 M. Kimes 7 Copyright (c) 2004, 200 5Steven H. Levine7 Copyright (c) 2004, 2006 Steven H. Levine 8 8 9 9 01 Aug 04 SHL Rework lstrip/rstrip usage 10 10 24 May 05 SHL Rework Win_Error usage 11 17 Jul 06 SHL Use Runtime_Error 11 12 12 13 ***********************************************************************/ … … 15 16 #define INCL_DOS 16 17 #define INCL_WIN 17 18 18 #include <os2.h> 19 19 20 #include <stdlib.h> 20 21 #include <stdio.h> … … 22 23 #include <time.h> 23 24 #include <ctype.h> 25 24 26 #include "fm3dll.h" 25 27 #include "fm3dlg.h" … … 27 29 28 30 #pragma data_seg(DATA2) 31 32 static PSZ pszSrcFile = __FILE__; 33 29 34 #pragma alloc_text(UNDELETE,FillUndelList,UndeleteDlgProc) 30 35 … … 36 41 37 42 38 VOID FillUndelList (VOID *arg) {39 43 VOID FillUndelList (VOID *arg) 44 { 40 45 HWND hwnd; 41 46 CHAR s[CCHMAXPATH * 2]; … … 60 65 WinSendDlgItemMsg(hwnd,UNDEL_LISTBOX,LM_DELETEALL,MPVOID,MPVOID); 61 66 unlinkf("%s","$UDELETE.#$#"); 62 fp = fopen("$UDELETE.#$#","w"); 63 if(fp) { 67 fp = xfopen("$UDELETE.#$#","w",pszSrcFile,__LINE__); 68 if (!fp) { 69 Win_Error(NULLHANDLE,hwnd,pszSrcFile,__LINE__, 70 GetPString(IDS_REDIRECTERRORTEXT)); 71 killme = TRUE; 72 goto Abort; 73 } 74 else { 64 75 newstdout = -1; 65 if (DosDupHandle(fileno(stdout),&newstdout)) {76 if (DosDupHandle(fileno(stdout),&newstdout)) { 66 77 saymsg(MB_CANCEL, 67 78 hwnd, … … 86 97 fclose(fp); 87 98 } 88 else { 89 Win_Error(NULLHANDLE,hwnd,__FILE__,__LINE__, 90 GetPString(IDS_REDIRECTERRORTEXT)); 91 killme = TRUE; 92 goto Abort; 93 } 94 fp = fopen("$UDELETE.#$#","r"); 95 if(fp) { 99 fp = xfopen("$UDELETE.#$#","r",pszSrcFile,__LINE__); 100 if (fp) { 96 101 fgets(s,CCHMAXPATH + 128,fp); 97 102 while(!feof(fp)) { … … 162 167 163 168 164 MRESULT EXPENTRY UndeleteDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {165 169 MRESULT EXPENTRY UndeleteDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) 170 { 166 171 SHORT sSelect; 167 172 static BOOL listdone,changed = FALSE,refresh = FALSE; … … 172 177 listdone = TRUE; 173 178 if(!mp2 || !*(CHAR *)mp2) { 179 Runtime_Error(pszSrcFile, __LINE__, "no data"); 174 180 WinDismissDlg(hwnd,0); 175 DosBeep(50,100);176 181 break; 177 182 } … … 202 207 203 208 listdone = FALSE; 204 undelinfo = malloc(sizeof(struct tempstruct)); 205 if(undelinfo) { 206 memset(undelinfo,0,sizeof(undelinfo)); 209 undelinfo = xmallocz(sizeof(struct tempstruct),pszSrcFile,__LINE__); 210 if (!undelinfo) { 211 listdone = TRUE; 212 WinDismissDlg(hwnd,0); 213 } 214 else { 207 215 undelinfo->hwnd = hwnd; 208 216 WinQueryDlgItemText(hwnd, … … 218 226 toupper(*undelinfo->path)); 219 227 WinSetWindowText(hwnd,s); 220 if(_beginthread(FillUndelList, 221 NULL, 222 65536, 223 (PVOID)undelinfo) != -1) 224 DosSleep(500L); 225 else { 228 if (_beginthread(FillUndelList,NULL,65536,(PVOID)undelinfo) == -1) 229 { 230 Runtime_Error(pszSrcFile, __LINE__,GetPString(IDS_COULDNTSTARTTHREADTEXT)); 226 231 free(undelinfo); 227 232 listdone = TRUE; 228 saymsg(MB_ENTER,229 hwnd,230 GetPString(IDS_UHOHTEXT),231 GetPString(IDS_COULDNTSTARTTHREADTEXT));232 233 WinDismissDlg(hwnd,0); 233 } 234 } 235 else { 236 listdone = TRUE; 237 saymsg(MB_ENTER, 238 hwnd, 239 GetPString(IDS_UHOHTEXT), 240 GetPString(IDS_OUTOFMEMORY)); 241 WinDismissDlg(hwnd,0); 234 } 235 else 236 DosSleep(500L); 242 237 } 243 238 refresh = FALSE; … … 291 286 case UNDEL_DRIVELIST: 292 287 if(!listdone) { 293 DosBeep(250,50);288 Runtime_Error(pszSrcFile, __LINE__, "not listdone"); 294 289 break; 295 290 } … … 304 299 3, 305 300 s); 306 if(isalpha(*s)) { 301 if (!isalpha(*s)) { 302 Runtime_Error(pszSrcFile, __LINE__, "no data"); 303 } 304 else { 307 305 drive = toupper(*s); 308 306 WinQueryDlgItemText(hwnd, … … 331 329 PostMsg(hwnd,UM_SETUP,MPVOID,MPVOID); 332 330 } 333 else334 DosBeep(50,100);335 331 } 336 332 break; … … 412 408 case UNDEL_DEL: 413 409 case DID_OK: 414 if(!changed && listdone) { 410 if (changed || !listdone) { 411 Runtime_Error(pszSrcFile, __LINE__, "not done"); 412 } 413 else { 415 414 sSelect = (USHORT)WinSendDlgItemMsg(hwnd,UNDEL_LISTBOX, 416 415 LM_QUERYSELECTION,MPFROMSHORT(LIT_FIRST), … … 422 421 423 422 DosForceDelete("\\FMUNDEL.CMD"); 424 fp = fopen("\\FMUNDEL.CMD","w");425 if (fp) {423 fp = xfopen("\\FMUNDEL.CMD","w",pszSrcFile,__LINE__); 424 if (fp) { 426 425 while(sSelect >= 0) { 427 426 *s = 0; … … 478 477 } 479 478 } 479 break; 480 481 case DID_CANCEL: 482 if (!listdone) 483 Runtime_Error(pszSrcFile, __LINE__, "is busy"); 480 484 else 481 DosBeep(50,100);482 break;483 484 case DID_CANCEL:485 if(listdone)486 485 WinDismissDlg(hwnd,0); 487 else488 DosBeep(100,100);489 486 break; 490 487 … … 499 496 500 497 case WM_CLOSE: 501 if(listdone) 502 break; 503 DosBeep(100,100); 504 return 0; 498 if (!listdone) { 499 Runtime_Error(pszSrcFile, __LINE__, "not listdone"); 500 return 0; 501 } 502 break; 505 503 506 504 case WM_DESTROY:
Note:
See TracChangeset
for help on using the changeset viewer.
