Changeset 1160 for trunk/dll/uudecode.c
- Timestamp:
- Sep 5, 2008, 11:41:43 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/uudecode.c
r907 r1160 25 25 #define INCL_DOS 26 26 #define INCL_WIN 27 #define INCL_LONGLONG 27 #define INCL_LONGLONG // dircnrs.h 28 28 29 29 #include "fm3dlg.h" 30 30 #include "fm3str.h" 31 #include "makelist.h" // AddToList 32 #include "errutil.h" // Dos_Error... 33 #include "strutil.h" // GetPString 31 #include "makelist.h" // AddToList 32 #include "errutil.h" // Dos_Error... 33 #include "strutil.h" // GetPString 34 #include "defview.h" 35 #include "uudecode.h" 34 36 #include "fm3dll.h" 35 37 … … 41 43 42 44 /* single character decode */ 43 #define DEC(c) 45 #define DEC(c) (((c) - ' ') & 077) 44 46 45 47 int UUD(char *filename, CHAR * dest) … … 55 57 if (!in) { 56 58 saymsg(MB_CANCEL, 57 58 59 59 HWND_DESKTOP, 60 GetPString(IDS_ERRORTEXT), 61 GetPString(IDS_COMPCANTOPENTEXT), filename); 60 62 return ret; 61 63 } … … 66 68 fclose(in); 67 69 saymsg(MB_CANCEL, 68 69 70 70 HWND_DESKTOP, 71 GetPString(IDS_ERRORTEXT), 72 GetPString(IDS_UUDNOBEGINTEXT), filename); 71 73 return ret; 72 74 } 73 75 if (!strncmp(buf, "begin ", 6)) 74 76 break; 75 } 77 } // for 76 78 *dest = 0; 77 79 sscanf(buf, "begin %o %259s", &mode, dest); … … 103 105 fclose(in); 104 106 saymsg(MB_CANCEL, 105 106 107 107 HWND_DESKTOP, 108 GetPString(IDS_ERRORTEXT), 109 GetPString(IDS_UUDCANTOPENFORTEXT), dest, filename); 108 110 return ret; 109 111 } … … 176 178 wk = (WORKER *) mp2; 177 179 if (wk->li && wk->li->list && wk->li->list[0]) { 178 179 180 180 WinSendDlgItemMsg(hwnd, MRG_TARGETNAME, EM_SETTEXTLIMIT, 181 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID); 182 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID); 181 183 } 182 184 else 183 185 WinDismissDlg(hwnd, 0); 184 186 } 185 187 else … … 199 201 p = strrchr(wk->li->targetpath, '\\'); 200 202 if (p) 201 203 start = (p + 1) - wk->li->targetpath; 202 204 WinSendDlgItemMsg(hwnd, MRG_TARGETNAME, EM_SETSEL, 203 205 MPFROM2SHORT(start, CCHMAXPATH), MPVOID); 204 206 for (x = 0; wk->li->list[x]; x++) { 205 206 207 208 209 210 207 if (IsFile(wk->li->list[x]) == 1) { 208 numfiles++; 209 WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM, 210 MPFROM2SHORT(LIT_END, 0), 211 MPFROMP(wk->li->list[x])); 212 } 211 213 } 212 214 WinCheckButton(hwnd, MRG_BINARY, (wk->li->type == IDM_MERGEBINARY)); 213 215 if (!numfiles) { 214 215 216 217 218 216 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 217 hwnd, 218 GetPString(IDS_SILLYERRORTEXT), 219 GetPString(IDS_MERGEWASTETEXT)); 220 WinDismissDlg(hwnd, 0); 219 221 } 220 222 } … … 226 228 switch (SHORT2FROMMP(mp1)) { 227 229 case LN_ENTER: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 230 { 231 SHORT x; 232 CHAR szBuffer[CCHMAXPATH]; 233 234 x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION, 235 MPFROMSHORT(LIT_FIRST), MPVOID); 236 if (x >= 0) { 237 *szBuffer = 0; 238 WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYITEMTEXT, 239 MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer)); 240 if (*szBuffer) 241 QuickEdit(hwnd, szBuffer); 242 } 243 } 244 break; 243 245 } 244 246 break; … … 252 254 case UM_SETDIR: 253 255 PaintRecessedWindow(WinWindowFromID(hwnd, MRG_HELP), (HPS) 0, FALSE, 254 256 TRUE); 255 257 return 0; 256 258 … … 264 266 wk = WinQueryWindowPtr(hwnd, QWL_USER); 265 267 if (wk) { 266 267 268 269 270 271 272 268 CHAR filename[CCHMAXPATH]; 269 270 strcpy(filename, wk->li->targetpath); 271 if (export_filename(HWND_DESKTOP, filename, FALSE) && *filename) { 272 strcpy(wk->li->targetpath, filename); 273 WinSetDlgItemText(hwnd, MRG_TARGETNAME, wk->li->targetpath); 274 } 273 275 } 274 276 break; … … 276 278 case MRG_REMOVE: 277 279 { 278 279 280 281 282 283 284 280 SHORT x; 281 282 x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION, 283 MPFROMSHORT(LIT_FIRST), MPVOID); 284 if (x >= 0) 285 WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_DELETEITEM, 286 MPFROMSHORT(x), MPVOID); 285 287 } 286 288 break; … … 289 291 case MRG_TOP: 290 292 { 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 293 SHORT x; 294 CHAR szBuffer[CCHMAXPATH]; 295 296 x = (SHORT) WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYSELECTION, 297 MPFROMSHORT(LIT_FIRST), MPVOID); 298 if (x >= 0) { 299 *szBuffer = 0; 300 WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_QUERYITEMTEXT, 301 MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer)); 302 if (*szBuffer) { 303 WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_DELETEITEM, 304 MPFROMSHORT(x), MPVOID); 305 if (SHORT1FROMMP(mp1) == MRG_TOP) 306 WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM, 307 MPFROM2SHORT(0, 0), MPFROMP(szBuffer)); 308 else 309 WinSendDlgItemMsg(hwnd, MRG_LISTBOX, LM_INSERTITEM, 310 MPFROM2SHORT(LIT_END, 0), MPFROMP(szBuffer)); 311 } 312 } 311 313 } 312 314 break; … … 318 320 case IDM_HELP: 319 321 if (hwndHelp) 320 321 322 WinSendMsg(hwndHelp, HM_DISPLAY_HELP, 323 MPFROM2SHORT(HELP_MERGE, 0), MPFROMSHORT(HM_RESOURCEID)); 322 324 break; 323 325 … … 325 327 wk = WinQueryWindowPtr(hwnd, QWL_USER); 326 328 if (wk) { 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 329 BOOL append, binary; 330 CHAR **list = NULL, **test, szBuffer[CCHMAXPATH]; 331 UINT numfiles = 0, numalloc = 0; 332 INT error; 333 SHORT x, y; 334 335 *szBuffer = 0; 336 WinQueryDlgItemText(hwnd, MRG_TARGETNAME, CCHMAXPATH, szBuffer); 337 if (!*szBuffer) { 338 DosBeep(50, 100); 339 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, MRG_TARGETNAME)); 340 break; 341 } 342 if (DosQueryPathInfo(szBuffer, 343 FIL_QUERYFULLNAME, 344 wk->li->targetpath, CCHMAXPATH)) { 345 DosBeep(50, 100); 346 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, MRG_TARGETNAME)); 347 break; 348 } 349 WinSetDlgItemText(hwnd, MRG_TARGETNAME, szBuffer); 350 append = WinQueryButtonCheckstate(hwnd, MRG_APPEND); 351 binary = WinQueryButtonCheckstate(hwnd, MRG_BINARY); 352 wk->li->type = (append && binary) ? IDM_MERGEBINARYAPPEND : 353 (append) ? IDM_MERGETEXTAPPEND : 354 (binary) ? IDM_MERGEBINARY : IDM_MERGETEXT; 355 x = (SHORT) WinSendDlgItemMsg(hwnd, 356 MRG_LISTBOX, 357 LM_QUERYITEMCOUNT, MPVOID, MPVOID); 358 for (y = 0; y < x; y++) { 359 *szBuffer = 0; 360 WinSendDlgItemMsg(hwnd, 361 MRG_LISTBOX, 362 LM_QUERYITEMTEXT, 363 MPFROM2SHORT(y, CCHMAXPATH), MPFROMP(szBuffer)); 364 if (*szBuffer) { 365 error = AddToList(szBuffer, &list, &numfiles, &numalloc); 366 if (error) { 367 Runtime_Error(pszSrcFile, __LINE__, "AddToList"); 368 break; 369 } 370 } 371 } 372 if (numfiles && list && numfiles + 1 < numalloc) { 373 test = 374 xrealloc(list, sizeof(CHAR *) * (numfiles + 1), pszSrcFile, 375 __LINE__); 376 if (test) 377 list = test; 378 } 379 if (!list || !list[0]) { 380 Runtime_Error2(pszSrcFile, __LINE__, IDS_NODATATEXT); 381 break; 382 } 383 else { 384 FreeList(wk->li->list); 385 wk->li->list = list; 386 } 385 387 } 386 388 WinDismissDlg(hwnd, 1); 387 389 break; 388 } 390 } // switch WM_COMMAND mp1 389 391 return 0; 390 } 392 } // switch msg 391 393 return WinDefDlgProc(hwnd, msg, mp1, mp2); 392 394 }
Note:
See TracChangeset
for help on using the changeset viewer.