Changeset 918
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/assoc.c
r911 r918 41 41 { 42 42 CHAR mask[CCHMAXPATH]; 43 CHAR cl[ 1001];43 CHAR cl[MAXCOMLINESTRG]; 44 44 CHAR sig[CCHMAXPATH]; 45 45 LONG offset; … … 631 631 { 632 632 ASSOC temp; 633 CHAR dummy[34], *psz[1002]; 634 635 replace = FALSE; 633 CHAR dummy[34]; 634 PSZ psz; 635 replace = FALSE; 636 636 637 { 637 638 x = (SHORT) WinSendDlgItemMsg(hwnd, … … 643 644 LM_SELECTITEM, 644 645 MPFROMSHORT(0), MPFROMSHORT(TRUE)); 645 } 646 } 647 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 646 648 memset(&temp, 0, sizeof(ASSOC)); 647 649 WinQueryDlgItemText(hwnd, ASS_MASK, sizeof(temp.mask), temp.mask); 648 650 WinQueryDlgItemText(hwnd, ASS_CL, sizeof(temp.cl), temp.cl); 649 *psz = CheckApp_QuoteAddExe(temp.cl);650 memcpy(temp.cl, *psz, strlen(*psz) + 1);651 CheckApp_QuoteAddExe(psz, temp.cl); 652 memcpy(temp.cl, psz, strlen(psz) + 1); 651 653 WinQueryDlgItemText(hwnd, ASS_SIG, sizeof(temp.sig), temp.sig); 652 654 rstrip(temp.sig); … … 727 729 { 728 730 ASSOC temp; 729 CHAR dummy[34], *psz[1002];730 731 CHAR dummy[34]; 732 PSZ psz; 731 733 replace = FALSE; 732 734 735 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 733 736 memset(&temp, 0, sizeof(ASSOC)); 734 737 WinQueryDlgItemText(hwnd, ASS_MASK, sizeof(temp.mask), temp.mask); 735 738 WinQueryDlgItemText(hwnd, ASS_CL, sizeof(temp.cl), temp.cl); 736 *psz = CheckApp_QuoteAddExe(temp.cl);737 memcpy(temp.cl, *psz, strlen(*psz) + 1);739 CheckApp_QuoteAddExe(psz, temp.cl); 740 memcpy(temp.cl, psz, strlen(psz) + 1); 738 741 WinQueryDlgItemText(hwnd, ASS_SIG, sizeof(temp.sig), temp.sig); 739 742 rstrip(temp.sig); … … 836 839 { 837 840 ASSOC temp; 838 CHAR dummy[34], *psz[1002];839 841 CHAR dummy[34]; 842 PSZ psz; 840 843 replace = TRUE; 841 844 … … 843 846 ASS_LISTBOX, 844 847 LM_QUERYSELECTION, 845 MPFROMSHORT(LIT_CURSOR), MPVOID); 848 MPFROMSHORT(LIT_CURSOR), MPVOID); 849 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 846 850 memset(&temp, 0, sizeof(ASSOC)); 847 851 WinQueryDlgItemText(hwnd, ASS_MASK, sizeof(temp.mask), temp.mask); 848 852 WinQueryDlgItemText(hwnd, ASS_CL, sizeof(temp.cl), temp.cl); 849 *psz = CheckApp_QuoteAddExe(temp.cl);850 memcpy(temp.cl, *psz, strlen(*psz) + 1);853 CheckApp_QuoteAddExe(psz, temp.cl); 854 memcpy(temp.cl, psz, strlen(psz) + 1); 851 855 WinQueryDlgItemText(hwnd, ASS_SIG, sizeof(temp.sig), temp.sig); 852 856 rstrip(temp.sig); -
trunk/dll/avv.c
r911 r918 91 91 92 92 static PSZ free_and_strdup_quoted_from_window(HWND hwnd, USHORT id, PSZ pszDest) 93 { 94 CHAR sz[256], *psz[256]; 95 93 { // fixme for command line limit 94 CHAR sz[256]; 95 PSZ psz; 96 97 psz = xmalloc(256, pszSrcFile, __LINE__); 96 98 xfree(pszDest); 97 99 WinQueryDlgItemText(hwnd, id, sizeof(sz), sz); 98 100 if (*sz){ 99 *psz = CheckApp_QuoteAddExe(sz);100 pszDest = xstrdup( sz, pszSrcFile, __LINE__);101 CheckApp_QuoteAddExe(psz, sz); 102 pszDest = xstrdup(psz, pszSrcFile, __LINE__); 101 103 } 102 104 else -
trunk/dll/command.c
r911 r918 44 44 typedef struct 45 45 { 46 CHAR cl[ 1001];46 CHAR cl[MAXCOMLINESTRG]; 47 47 INT flags; 48 48 CHAR title[34]; … … 621 621 { 622 622 COMMAND temp; 623 char *psz[1002];623 PSZ psz; 624 624 APIRET ret; 625 625 626 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 626 627 memset(&temp, 0, sizeof(COMMAND)); 627 628 WinQueryDlgItemText(hwnd, CMD_CL, sizeof(temp.cl), temp.cl); 628 *psz = CheckApp_QuoteAddExe(temp.cl);629 memcpy(temp.cl, *psz, strlen(*psz) + 1);629 CheckApp_QuoteAddExe(psz, temp.cl); 630 memcpy(temp.cl, psz, strlen(psz) + 1); 630 631 if (!strchr(temp.cl, '%')){ 631 632 ret = saymsg(MB_YESNO, … … 715 716 { 716 717 COMMAND temp; 717 CHAR *psz[1002];718 PSZ psz; 718 719 APIRET ret; 719 720 721 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 720 722 memset(&temp, 0, sizeof(COMMAND)); 721 723 WinQueryDlgItemText(hwnd, CMD_CL, sizeof(temp.cl), temp.cl); 722 *psz = CheckApp_QuoteAddExe(temp.cl);723 memcpy(temp.cl, *psz, strlen(*psz) + 1);724 CheckApp_QuoteAddExe(psz, temp.cl); 725 memcpy(temp.cl, psz, strlen(psz) + 1); 724 726 if (!strchr(temp.cl, '%')){ 725 727 ret = saymsg(MB_YESNO, … … 814 816 case CMD_REPLACE: 815 817 { //Delete first 816 char *psz[1002];818 PSZ psz; 817 819 COMMAND temp; 818 820 APIRET ret; 819 821 822 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 820 823 memset(&temp, 0, sizeof(COMMAND)); 821 824 WinQueryDlgItemText(hwnd, CMD_CL, sizeof(temp.cl), temp.cl); 822 *psz = CheckApp_QuoteAddExe(temp.cl);823 memcpy(temp.cl, *psz, strlen(*psz) + 1);825 CheckApp_QuoteAddExe(psz, temp.cl); 826 memcpy(temp.cl, psz, strlen(psz) + 1); 824 827 if (fCancelAction){ 825 828 fCancelAction = FALSE; -
trunk/dll/fm3dll.h
r917 r918 495 495 char *RootName(char *filename); 496 496 APIRET MakeFullName(char *filename); 497 PSZ CheckApp_QuoteAddExe(PSZ pszPgm);498 497 499 498 /* misc.c */ … … 684 683 CHAR * formatstring, ...); 685 684 HAPP Exec(HWND hwndNotify, BOOL child, char *startdir, char *env, 686 PROGTYPE * progt, ULONG fl, char *formatstring, ...); 685 PROGTYPE * progt, ULONG fl, char *formatstring, ...); 686 PSZ CheckApp_QuoteAddExe(PSZ pszQuotedCompletePgm, PSZ pszPgm); 687 #define MAXCOMLINESTRG (4096) /* used to build command line strings */ 687 688 #define RUNTYPE_MASK 0xf 688 689 #define SYNCHRONOUS 1 … … 1182 1183 DATADEF CHAR archiverbb2[CCHMAXPATH], StopPrinting, profile[CCHMAXPATH]; 1183 1184 DATADEF CHAR appname[12], realappname[12]; 1184 DATADEF CHAR editor[ CCHMAXPATH], viewer[CCHMAXPATH], virus[CCHMAXPATH],1185 compare[ CCHMAXPATH], extractpath[CCHMAXPATH],1185 DATADEF CHAR editor[MAXCOMLINESTRG], viewer[MAXCOMLINESTRG], virus[MAXCOMLINESTRG], 1186 compare[MAXCOMLINESTRG], extractpath[CCHMAXPATH], 1186 1187 lastextractpath[CCHMAXPATH], lasttoolbox[CCHMAXPATH], 1187 1188 HomePath[CCHMAXPATH], SwapperDat[CCHMAXPATH], 1188 binview[ CCHMAXPATH], bined[CCHMAXPATH], printer[CCHMAXPATH],1189 dircompare[ CCHMAXPATH], szDefArc[CCHMAXPATH],1190 ftprun[ CCHMAXPATH], ftprundir[CCHMAXPATH], httprun[CCHMAXPATH],1189 binview[MAXCOMLINESTRG], bined[MAXCOMLINESTRG], printer[CCHMAXPATH], 1190 dircompare[MAXCOMLINESTRG], szDefArc[CCHMAXPATH], 1191 ftprun[MAXCOMLINESTRG], ftprundir[CCHMAXPATH], httprun[MAXCOMLINESTRG], 1191 1192 httprundir[CCHMAXPATH], mailrundir[CCHMAXPATH], 1192 mailrun[ CCHMAXPATH], targetdir[CCHMAXPATH];1193 mailrun[MAXCOMLINESTRG], targetdir[CCHMAXPATH]; 1193 1194 DATADEF HMODULE FM3DllHandle, FM3ModHandle; 1194 1195 DATADEF CHAR *quicktool[50]; -
trunk/dll/notebook.c
r917 r918 193 193 PrfWriteProfileString(fmprof, appname, "DefArc", szDefArc); 194 194 { 195 CHAR szBuf[CCHMAXPATH], *psz; 196 197 WinQueryDlgItemText(hwnd, CFGA_VIRUS, CCHMAXPATH, szBuf); 198 szBuf[CCHMAXPATH - 1] = 0; 199 if (strcmp(szBuf, virus)) { 200 psz = CheckApp_QuoteAddExe(szBuf); 201 memcpy(virus, psz, strlen(psz) + 1); 202 if (!strchr(virus, '%') && strlen(virus) > 3) 203 strcat(virus, " %p"); 195 CHAR szCLBuf[MAXCOMLINESTRG], szPathBuf[CCHMAXPATH]; 196 PSZ psz; 197 198 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 199 WinQueryDlgItemText(hwnd, CFGA_VIRUS, MAXCOMLINESTRG, szCLBuf); 200 szCLBuf[MAXCOMLINESTRG - 1] = 0; 201 if (strcmp(szCLBuf, virus)){ 202 CheckApp_QuoteAddExe(psz, szCLBuf); 203 memcpy(virus, psz, strlen(psz) + 1); 204 if (!strchr(virus, '%') && strlen(virus) > 3) 205 strcat(virus, " %p"); 204 206 } 205 207 if (!*virus) 206 208 strcpy(virus, "OS2SCAN.EXE %p /SUB /A"); 207 WinQueryDlgItemText(hwnd, CFGA_EXTRACTPATH, CCHMAXPATH, szBuf); 208 szBuf[CCHMAXPATH - 1] = 0; 209 bstrip(szBuf); 210 211 if (strcmp(extractpath, szBuf)) { 212 memcpy(extractpath, szBuf, strlen(szBuf) + 1); 213 if (*extractpath) { 214 MakeFullName(extractpath); 215 if (IsFile(extractpath)) { 216 ulResult = saymsg(MB_YESNOCANCEL | MB_ICONQUESTION | MB_DEFBUTTON1, HWND_DESKTOP, 217 GetPString(IDS_WARNINGTEXT), 218 GetPString(IDS_EXTPATHNOTVALIDTEXT), 219 extractpath); 220 if (ulResult == MBID_YES) 221 *extractpath = 0; 222 if (ulResult == MBID_CANCEL) { 223 WinDlgBox(HWND_DESKTOP, 209 WinQueryDlgItemText(hwnd, CFGA_EXTRACTPATH, CCHMAXPATH, szPathBuf); 210 szPathBuf[CCHMAXPATH - 1] = 0; 211 bstrip(szPathBuf); 212 if (strcmp(extractpath, szPathBuf)) { 213 memcpy(extractpath, szPathBuf, strlen(szPathBuf) + 1); 214 if (*extractpath){ 215 MakeFullName(extractpath); 216 if (IsFile(extractpath)) { 217 ulResult = saymsg(MB_YESNOCANCEL | MB_ICONQUESTION | MB_DEFBUTTON1, HWND_DESKTOP, 218 GetPString(IDS_WARNINGTEXT), 219 GetPString(IDS_EXTPATHNOTVALIDTEXT), 220 extractpath); 221 if (ulResult == MBID_YES) 222 *extractpath = 0; 223 if (ulResult == MBID_CANCEL){ 224 WinDlgBox(HWND_DESKTOP, 224 225 hwnd, 225 226 CfgDlgProc, … … 227 228 CFG_FRAME, 228 229 MPFROMLONG(IDM_ARCHIVERSETTINGS)); 229 230 231 232 230 break; 231 } 232 } 233 } 233 234 } 234 235 } … … 364 365 case WM_INITDLG: 365 366 WinSendDlgItemMsg(hwnd, CFGV_VIEWER, EM_SETTEXTLIMIT, 366 MPFROM2SHORT( CCHMAXPATH, 0), MPVOID);367 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 367 368 WinSendDlgItemMsg(hwnd, CFGV_EDITOR, EM_SETTEXTLIMIT, 368 MPFROM2SHORT( CCHMAXPATH, 0), MPVOID);369 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 369 370 WinSendDlgItemMsg(hwnd, CFGV_BINVIEW, EM_SETTEXTLIMIT, 370 MPFROM2SHORT( CCHMAXPATH, 0), MPVOID);371 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 371 372 WinSendDlgItemMsg(hwnd, CFGV_BINED, EM_SETTEXTLIMIT, 372 MPFROM2SHORT( CCHMAXPATH, 0), MPVOID);373 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 373 374 WinEnableWindow(WinWindowFromID(hwnd, CFGV_FIND), FALSE); 374 375 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID); … … 456 457 case WM_CLOSE: 457 458 { 458 CHAR szBuf[CCHMAXPATH], *psz; 459 460 WinQueryDlgItemText(hwnd, CFGV_VIEWER, CCHMAXPATH, szBuf); 461 szBuf[CCHMAXPATH - 1] = 0; 462 if (strcmp(szBuf, viewer)) { 463 psz = CheckApp_QuoteAddExe(szBuf); 464 memcpy(viewer, psz, strlen(psz) + 1); 465 if (!strchr(viewer, '%') && strlen(viewer) > 3) 466 strcat(viewer, " %a"); 467 } 468 WinQueryDlgItemText(hwnd, CFGV_EDITOR, CCHMAXPATH, szBuf); 469 szBuf[CCHMAXPATH - 1] = 0; 470 if (strcmp(szBuf, editor)) { 471 psz = CheckApp_QuoteAddExe(szBuf); 472 memcpy(editor, psz, strlen(psz) + 1); 473 if (!strchr(editor, '%') && strlen(editor) > 3) 474 strcat(editor, " %a"); 475 } 476 WinQueryDlgItemText(hwnd, CFGV_BINVIEW, CCHMAXPATH, szBuf); 477 szBuf[CCHMAXPATH - 1] = 0; 478 if (strcmp(szBuf, binview)) { 479 psz = CheckApp_QuoteAddExe(szBuf); 480 memcpy(binview, psz, strlen(psz) + 1); 481 if (!strchr(binview, '%') && strlen(binview) > 3) 482 strcat(binview, " %a"); 483 } 484 WinQueryDlgItemText(hwnd, CFGV_BINED, CCHMAXPATH, szBuf); 485 szBuf[CCHMAXPATH - 1] = 0; 486 if (strcmp(szBuf, bined)) { 487 psz = CheckApp_QuoteAddExe(szBuf); 488 memcpy(bined, psz, strlen(psz) + 1); 489 if (!strchr(bined, '%') && strlen(bined) > 3) 490 strcat(bined, " %a"); 459 CHAR szCLBuf[MAXCOMLINESTRG]; 460 PSZ psz; 461 462 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 463 WinQueryDlgItemText(hwnd, CFGV_VIEWER, MAXCOMLINESTRG, szCLBuf); 464 szCLBuf[MAXCOMLINESTRG - 1] = 0; 465 if (strcmp(szCLBuf, viewer)){ 466 CheckApp_QuoteAddExe(psz, szCLBuf); 467 memcpy(viewer, psz, strlen(psz) + 1); 468 if (!strchr(viewer, '%') && strlen(viewer) > 3) 469 strcat(viewer, " %a"); 470 } 471 WinQueryDlgItemText(hwnd, CFGV_EDITOR, MAXCOMLINESTRG, szCLBuf); 472 szCLBuf[MAXCOMLINESTRG - 1] = 0; 473 if (strcmp(szCLBuf, editor)){ 474 CheckApp_QuoteAddExe(psz, szCLBuf); 475 memcpy(editor, psz, strlen(psz) + 1); 476 if (!strchr(editor, '%') && strlen(editor) > 3) 477 strcat(editor, " %a"); 478 } 479 WinQueryDlgItemText(hwnd, CFGV_BINVIEW, MAXCOMLINESTRG, szCLBuf); 480 szCLBuf[MAXCOMLINESTRG - 1] = 0; 481 if (strcmp(szCLBuf, binview)){ 482 CheckApp_QuoteAddExe(psz, szCLBuf); 483 memcpy(binview, psz, strlen(psz) + 1); 484 if (!strchr(binview, '%') && strlen(binview) > 3) 485 strcat(binview, " %a"); 486 } 487 WinQueryDlgItemText(hwnd, CFGV_BINED, MAXCOMLINESTRG, szCLBuf); 488 szCLBuf[MAXCOMLINESTRG - 1] = 0; 489 if (strcmp(szCLBuf, bined)){ 490 CheckApp_QuoteAddExe(psz, szCLBuf); 491 memcpy(bined, psz, strlen(psz) + 1); 492 if (!strchr(bined, '%') && strlen(bined) > 3) 493 strcat(bined, " %a"); 491 494 } 492 495 PrfWriteProfileString(fmprof, appname, "Viewer", viewer); … … 530 533 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID); 531 534 WinSendDlgItemMsg(hwnd, CFGH_FTPRUN, EM_SETTEXTLIMIT, 532 MPFROM2SHORT( CCHMAXPATH, 0), MPVOID);535 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 533 536 WinSendDlgItemMsg(hwnd, CFGH_HTTPRUN, EM_SETTEXTLIMIT, 534 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);537 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 535 538 WinSendDlgItemMsg(hwnd, CFGH_MAILRUN, EM_SETTEXTLIMIT, 536 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID);539 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 537 540 WinSendDlgItemMsg(hwnd, CFGH_RUNMAILWORKDIR, EM_SETTEXTLIMIT, 538 541 MPFROM2SHORT(CCHMAXPATH, 0), MPVOID); … … 648 651 { // fixme these strings can be longer than CCHMAXPATH since 649 652 // they contain args. 650 CHAR szBuf[CCHMAXPATH], *psz; 651 652 WinQueryDlgItemText(hwnd, CFGH_RUNHTTPWORKDIR, CCHMAXPATH, szBuf); 653 szBuf[CCHMAXPATH - 1] = 0; 654 bstrip(szBuf); 655 memcpy(httprundir, szBuf, strlen(szBuf) + 1); 656 WinQueryDlgItemText(hwnd, CFGH_RUNFTPWORKDIR, CCHMAXPATH, szBuf); 657 szBuf[CCHMAXPATH - 1] = 0; 658 bstrip(szBuf); 659 memcpy(ftprundir, szBuf, strlen(szBuf) + 1); 660 WinQueryDlgItemText(hwnd, CFGH_RUNMAILWORKDIR, CCHMAXPATH, szBuf); 661 szBuf[CCHMAXPATH - 1] = 0; 662 bstrip(szBuf); 663 memcpy(mailrundir, szBuf, strlen(szBuf) + 1); 664 WinQueryDlgItemText(hwnd, CFGH_FTPRUN, CCHMAXPATH, szBuf); 665 szBuf[CCHMAXPATH - 1] = 0; 666 if (strcmp(szBuf, ftprun)) { 667 psz = CheckApp_QuoteAddExe(szBuf); 668 memcpy(ftprun, psz, strlen(psz) + 1); 669 } 670 WinQueryDlgItemText(hwnd, CFGH_HTTPRUN, CCHMAXPATH, szBuf); 671 szBuf[CCHMAXPATH - 1] = 0; 672 if (strcmp(szBuf, httprun)) { 673 psz = CheckApp_QuoteAddExe(szBuf); 674 memcpy(httprun, psz, strlen(psz) + 1); 675 } 676 WinQueryDlgItemText(hwnd, CFGH_MAILRUN, CCHMAXPATH, szBuf); 677 szBuf[CCHMAXPATH - 1] = 0; 678 if (strcmp(szBuf, mailrun)) { 679 psz = CheckApp_QuoteAddExe(szBuf); 680 memcpy(mailrun, psz, strlen(psz) + 1); 653 CHAR szCLBuf[MAXCOMLINESTRG], szPathBuf[CCHMAXPATH]; 654 PSZ psz; 655 656 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 657 WinQueryDlgItemText(hwnd, CFGH_RUNHTTPWORKDIR, CCHMAXPATH, szPathBuf); 658 szPathBuf[CCHMAXPATH - 1] = 0; 659 bstrip(szPathBuf); 660 memcpy(httprundir, szPathBuf, strlen(szPathBuf) + 1); 661 WinQueryDlgItemText(hwnd, CFGH_RUNFTPWORKDIR, CCHMAXPATH, szPathBuf); 662 szPathBuf[CCHMAXPATH - 1] = 0; 663 bstrip(szPathBuf); 664 memcpy(ftprundir, szPathBuf, strlen(szPathBuf) + 1); 665 WinQueryDlgItemText(hwnd, CFGH_RUNMAILWORKDIR, CCHMAXPATH, szPathBuf); 666 szPathBuf[CCHMAXPATH - 1] = 0; 667 bstrip(szPathBuf); 668 memcpy(mailrundir, szPathBuf, strlen(szPathBuf) + 1); 669 WinQueryDlgItemText(hwnd, CFGH_FTPRUN, MAXCOMLINESTRG, szCLBuf); 670 szCLBuf[MAXCOMLINESTRG - 1] = 0; 671 if (strcmp(szCLBuf, ftprun)){ 672 CheckApp_QuoteAddExe(psz, szCLBuf); 673 memcpy(ftprun, psz, strlen(psz) + 1); 674 } 675 WinQueryDlgItemText(hwnd, CFGH_HTTPRUN, MAXCOMLINESTRG, szCLBuf); 676 szCLBuf[MAXCOMLINESTRG - 1] = 0; 677 if (strcmp(szCLBuf, httprun)){ 678 CheckApp_QuoteAddExe(psz, szCLBuf); 679 memcpy(httprun, psz, strlen(psz) + 1); 680 } 681 WinQueryDlgItemText(hwnd, CFGH_MAILRUN, MAXCOMLINESTRG, szCLBuf); 682 szCLBuf[MAXCOMLINESTRG - 1] = 0; 683 if (strcmp(szCLBuf, mailrun)){ 684 CheckApp_QuoteAddExe(psz, szCLBuf); 685 memcpy(mailrun, psz, strlen(psz) + 1); 681 686 } 682 687 PrfWriteProfileString(fmprof, appname, "HttpRunDir", httprundir); … … 1179 1184 case WM_INITDLG: 1180 1185 WinSendDlgItemMsg(hwnd, CFGC_COMPARE, EM_SETTEXTLIMIT, 1181 MPFROM2SHORT( CCHMAXPATH, 0), MPVOID);1186 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 1182 1187 WinSendDlgItemMsg(hwnd, CFGC_DIRCOMPARE, EM_SETTEXTLIMIT, 1183 MPFROM2SHORT( CCHMAXPATH, 0), MPVOID);1188 MPFROM2SHORT(MAXCOMLINESTRG, 0), MPVOID); 1184 1189 WinEnableWindow(WinWindowFromID(hwnd, CFGC_FIND), FALSE); 1185 1190 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID); … … 1257 1262 case WM_CLOSE: 1258 1263 { 1259 CHAR szBuf[CCHMAXPATH], *psz; 1260 1261 WinQueryDlgItemText(hwnd, CFGC_DIRCOMPARE, CCHMAXPATH, szBuf); 1262 szBuf[CCHMAXPATH - 1] = 0; 1263 if (strcmp(szBuf, dircompare)) { 1264 psz = CheckApp_QuoteAddExe(szBuf); 1265 memcpy(dircompare, psz, strlen(psz) + 1); 1266 if (!strchr(dircompare, '%') && strlen(dircompare) > 3) 1267 strcat(dircompare, " %a"); 1268 } 1264 CHAR szCLBuf[MAXCOMLINESTRG]; 1265 PSZ psz; 1266 1267 psz = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 1268 WinQueryDlgItemText(hwnd, CFGC_DIRCOMPARE, MAXCOMLINESTRG, szCLBuf); 1269 szCLBuf[MAXCOMLINESTRG - 1] = 0; 1270 if (strcmp(szCLBuf, dircompare)){ 1271 CheckApp_QuoteAddExe(psz, szCLBuf); 1272 memcpy(dircompare, psz, strlen(psz) + 1); 1273 if (!strchr(dircompare, '%') && strlen(dircompare) > 3) 1274 strcat(dircompare, " %a"); 1275 } 1269 1276 PrfWriteProfileString(fmprof, appname, "DirCompare", dircompare); 1270 WinQueryDlgItemText(hwnd, CFGC_COMPARE, CCHMAXPATH, szBuf);1271 szBuf[CCHMAXPATH- 1] = 0;1272 if (strcmp(szBuf, compare)){1273 psz = CheckApp_QuoteAddExe(szBuf);1274 1275 1276 1277 1277 WinQueryDlgItemText(hwnd, CFGC_COMPARE, MAXCOMLINESTRG, szCLBuf); 1278 szCLBuf[MAXCOMLINESTRG - 1] = 0; 1279 if (strcmp(szCLBuf, compare)){ 1280 CheckApp_QuoteAddExe(psz, szCLBuf); 1281 memcpy(compare, psz, strlen(psz) + 1); 1282 if (!strchr(compare, '%') && strlen(compare) > 3) 1283 strcat(compare, " %a"); 1284 } 1278 1285 PrfWriteProfileString(fmprof, appname, "Compare", compare); 1279 1286 break; -
trunk/dll/systemf.c
r917 r918 43 43 static PSZ pszSrcFile = __FILE__; 44 44 45 #define MAXSTRG (4096) /* used to build command line strings */46 47 45 /** 48 46 * Bring session foreground … … 83 81 /* executes the command once for all files in list */ 84 82 85 char path[CCHMAXPATH], commandline[ 2048], modpath[CCHMAXPATH], listfile[CCHMAXPATH],83 char path[CCHMAXPATH], commandline[MAXCOMLINESTRG], modpath[CCHMAXPATH], listfile[CCHMAXPATH], 86 84 *p, *pp, drive, *file, *ext, *dot; 87 85 register int x; … … 676 674 677 675 rc = DosAllocMem((PVOID)&pszPgm, 678 MAX STRG,676 MAXCOMLINESTRG, 679 677 PAG_COMMIT | OBJ_TILE | PAG_READ | PAG_WRITE); 680 678 if (rc) { … … 721 719 if (temp) { 722 720 rc = DosAllocMem((PVOID)&pszArgs, 723 MAX STRG * 2,721 MAXCOMLINESTRG * 2, 724 722 PAG_COMMIT | OBJ_TILE | PAG_READ | PAG_WRITE); 725 723 if (rc) … … 854 852 if (~type & FULLSCREEN) 855 853 type |= WINDOWED; 856 rc = DosAllocMem((PVOID) & pszArgs, MAX STRG * 2,854 rc = DosAllocMem((PVOID) & pszArgs, MAXCOMLINESTRG * 2, 857 855 PAG_COMMIT | OBJ_TILE | PAG_READ | PAG_WRITE); 858 856 if (rc) { … … 1237 1235 ulOptions |= SAF_STARTCHILDAPP; 1238 1236 1239 executable = xmallocz(MAX STRG,pszSrcFile,__LINE__);1237 executable = xmallocz(MAXCOMLINESTRG, pszSrcFile, __LINE__); 1240 1238 if (executable) { 1241 1239 va_start(parguments, formatstring); … … 1244 1242 strip_lead_char(" \t", executable); 1245 1243 if (*executable) { 1246 parameters = xmalloc(MAX STRG,pszSrcFile,__LINE__);1244 parameters = xmalloc(MAXCOMLINESTRG, pszSrcFile, __LINE__); 1247 1245 if (parameters) { 1248 1246 p = executable; … … 1318 1316 } 1319 1317 1320 PSZ CheckApp_QuoteAddExe(PSZ psz Pgm)1318 PSZ CheckApp_QuoteAddExe(PSZ pszQuotedCompletePgm, PSZ pszPgm) 1321 1319 { 1322 // 11 Jan 08 SHL fixme to not return quoted string on stack 1323 // 11 Jan 08 SHL fixme to have javadoc comments 1324 char szTempPgm[2048], tempcom[2048], temparg[2048]; 1320 char tempcom[MAXCOMLINESTRG], temparg[MAXCOMLINESTRG]; 1325 1321 char *offset = '\0', *offsetexe, *offsetcom, *offsetcmd, *offsetbtm, *offsetbat; 1326 1322 APIRET ret; … … 1331 1327 HDIR hdirFindHandle = HDIR_CREATE; 1332 1328 ULONG ulFindCount = 1; 1333 PSZ psz QuotedCompletePgm;1329 PSZ pszTempPgm = pszQuotedCompletePgm; 1334 1330 1335 1331 bstrip(pszPgm); … … 1396 1392 else 1397 1393 ret = DosQueryAppType(tempcom, &ulAppType); 1398 BldQuotedFileName( szTempPgm, tempcom);1394 BldQuotedFileName(pszTempPgm, tempcom); 1399 1395 //printf("%d A", ret); fflush(stdout); 1400 1396 if (ret) { 1401 1402 1403 1404 1405 1406 if (ret == MBID_YES) 1407 pszQuotedCompletePgm = pszPgm;1408 else { 1409 fCancelAction = TRUE; 1410 pszQuotedCompletePgm = pszPgm;1411 } 1412 }1413 else {1414 if (temparg[0] != ' ') 1415 strcat(szTempPgm, " "); 1416 strcat(szTempPgm, temparg);1417 pszQuotedCompletePgm = szTempPgm;1397 ret = saymsg(MB_YESNO, 1398 HWND_DESKTOP, 1399 NullStr, 1400 GetPString(IDS_PROGRAMNOTFOUNDTEXT), 1401 pszPgm); 1402 if (ret == MBID_YES){ 1403 pszTempPgm = pszPgm; 1404 } 1405 else{ 1406 fCancelAction = TRUE; 1407 pszTempPgm = pszPgm; 1408 } 1409 } 1410 else{ 1411 if (temparg[0] != ' ') 1412 strcat(pszTempPgm, " "); 1413 strcat(pszTempPgm, temparg); 1418 1414 } 1419 1415 … … 1447 1443 } 1448 1444 } 1449 if (!ret) { 1450 BldQuotedFileName(szTempPgm, tempcom); 1451 strcpy(temparg, pszPgm + strlen(tempcom) - 3); 1452 if ((temparg[0] == '\"' && temparg[1] == ' ') || 1453 !strstr(pszPgm, "\\:" ) || 1454 strchr(temparg, '\"') == strrchr(temparg, '\"')) 1455 remove_first_occurence_of_character("\"", temparg); 1456 if (strchr(temparg, '\"') != strrchr(temparg, '\"')) 1457 saymsg(MB_OK, HWND_DESKTOP, 1458 NullStr, 1459 GetPString(IDS_QUOTESINARGSTEXT), 1460 pszPgm); 1461 if (temparg[0] != ' ') 1462 strcat(szTempPgm, " "); 1463 strcat(szTempPgm, temparg); 1464 pszQuotedCompletePgm = szTempPgm; 1445 if (!ret){ 1446 BldQuotedFileName(pszTempPgm, tempcom); 1447 strcpy(temparg, pszPgm + strlen(tempcom) - 3); 1448 if ((temparg[0] == '\"' && temparg[1] == ' ') || 1449 !strstr(pszPgm, "\\:" ) || 1450 strchr(temparg, '\"') == strrchr(temparg, '\"')) 1451 remove_first_occurence_of_character("\"", temparg); 1452 if (strchr(temparg, '\"') != strrchr(temparg, '\"')) 1453 saymsg(MB_OK, HWND_DESKTOP, 1454 NullStr, 1455 GetPString(IDS_QUOTESINARGSTEXT), 1456 pszPgm); 1457 if (temparg[0] != ' ') 1458 strcat(pszTempPgm, " "); 1459 strcat(pszTempPgm, temparg); 1465 1460 } 1466 1461 else { 1467 1468 1469 1470 1471 1472 1473 pszQuotedCompletePgm = pszPgm;1462 ret = saymsg(MB_OK, 1463 HWND_DESKTOP, 1464 NullStr, 1465 GetPString(IDS_PROGRAMNOTEXE2TEXT), 1466 pszPgm); 1467 fCancelAction = TRUE; 1468 pszTempPgm = pszPgm; 1474 1469 } 1475 1470 } … … 1495 1490 ulResultBufLen, &ulFindCount, FIL_STANDARD); 1496 1491 1497 BldQuotedFileName( szTempPgm, tempcom);1492 BldQuotedFileName(pszTempPgm, tempcom); 1498 1493 //printf("%d %s ", ret, tempcom); fflush(stdout); 1499 1494 if (ret) { … … 1512 1507 } 1513 1508 ret = saymsg(MB_YESNOCANCEL, 1514 HWND_DESKTOP, 1515 NullStr, 1516 GetPString(IDS_PROGRAMNOTEXE3TEXT), 1517 pszPgm, szTempPgm); 1518 if (ret == MBID_YES) { 1519 if (temparg[0] != ' ') 1520 strcat(szTempPgm, " "); 1521 strcat(szTempPgm, temparg); 1522 pszQuotedCompletePgm = szTempPgm; 1523 } 1524 if (ret == MBID_CANCEL) { 1525 fCancelAction = TRUE; 1526 pszQuotedCompletePgm = pszPgm; 1527 } 1528 else 1529 pszQuotedCompletePgm = pszPgm; 1530 } 1531 return pszQuotedCompletePgm; 1509 HWND_DESKTOP, 1510 NullStr, 1511 GetPString(IDS_PROGRAMNOTEXE3TEXT), 1512 pszPgm, pszTempPgm); 1513 if (ret == MBID_YES){ 1514 if (temparg[0] != ' ') 1515 strcat(pszTempPgm, " "); 1516 strcat(pszTempPgm, temparg); 1517 } 1518 if (ret == MBID_CANCEL){ 1519 fCancelAction = TRUE; 1520 pszTempPgm = pszPgm; 1521 } 1522 } 1532 1523 } 1533 return pszPgm; 1524 else 1525 pszTempPgm = pszPgm; 1526 return pszQuotedCompletePgm; 1534 1527 } 1535 1528
Note:
See TracChangeset
for help on using the changeset viewer.