Changeset 888 for trunk/dll/arccnrs.c


Ignore:
Timestamp:
Dec 22, 2007, 11:02:11 PM (18 years ago)
Author:
Gregg Young
Message:

runemf2 now quotes executable strings if needed (Ticket 180); it also reports where it was called from on errors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/arccnrs.c

    r872 r888  
    194194          if (*binview)
    195195            ExecOnList((HWND) 0, binview, WINDOWED | SEPARATE, NULL, list,
    196                        NULL);
     196                       NULL, pszSrcFile, __LINE__);
    197197          else
    198198            StartMLEEditor(HWND_DESKTOP, 16 + 4 + 1, ad->arcname, hwnd);
     
    201201          if (*viewer) {
    202202            ExecOnList((HWND) 0, viewer, WINDOWED | SEPARATE |
    203                         (fViewChild ? CHILD : 0),
    204                        NULL, list, NULL);
     203                            (fViewChild ? CHILD : 0),
     204                             NULL, list, NULL, pszSrcFile, __LINE__);
    205205          }
    206206          else
     
    213213      ad = WinQueryWindowPtr(hwnd, QWL_USER);
    214214      runemf2(SEPARATEKEEP | WINDOWED | MAXIMIZED,
    215               hwnd, NULL, NULL,
     215              hwnd, pszSrcFile, __LINE__, NULL, NULL,
    216216              "%s %s",
    217217              ad->info->test,
    218218              BldQuotedFileName(szQuotedArcName, ad->arcname));
    219       // runemf2(SEPARATEKEEP | WINDOWED | MAXIMIZED,
    220       //              hwnd, NULL, NULL, "%s %s%s%s", ad->info->test,
    221               // needs_quoting(ad->arcname) ? "\"" : NullStr,
    222               // ad->arcname,
    223               // needs_quoting(ad->arcname) ? "\"" : NullStr);
    224219      break;
    225220    }
     
    544539      p = GetCmdSpec(TRUE);
    545540      runemf2(SEPARATE | INVISIBLE | MINIMIZED | BACKGROUND | WAIT,
    546               hwndCnr, NULL, "DOS_BACKGROUND_EXECUTION=1",
     541              hwndCnr, pszSrcFile, __LINE__, NULL, "DOS_BACKGROUND_EXECUTION=1",
    547542              "%s /C %s %s >%s",
    548543              p,                        // shell
     
    550545              BldQuotedFileName(s, arcname),
    551546              arctemp);
    552       // runemf2(SEPARATE | INVISIBLE | MINIMIZED | BACKGROUND | WAIT,
    553       //              hwndCnr,
    554       //              NULL,
    555       //              "DOS_BACKGROUND_EXECUTION=1",
    556       //              "%s /C %s %s%s%s > %s",
    557       //              p,
    558       //              info->list,
    559       //              needs_quoting(arcname) ? "\"" : NullStr,
    560       //              arcname,
    561       //              needs_quoting(arcname) ? "\"" : NullStr,
    562       //              arctemp);
    563547    }
    564548    else {
     
    586570          else {
    587571            runemf2(SEPARATE | INVISIBLE | FULLSCREEN | BACKGROUND | WAIT,
    588                     hwndCnr, NULL, NULL,
     572                    hwndCnr, pszSrcFile, __LINE__, NULL, NULL,
    589573                    "%s %s",
    590574                    info->list,
    591575                    BldQuotedFileName(s, arcname));
    592             // runemf2(SEPARATE | INVISIBLE | FULLSCREEN | BACKGROUND | WAIT,
    593             //      hwndCnr, NULL, NULL, "%s %s%s%s", info->list,
    594             //      needs_quoting(arcname) ? "\"" : NullStr,
    595             //      arcname,
    596             //      needs_quoting(arcname) ? "\"" : NullStr);
    597576            oldstdout = fileno(stdout);
    598577            DosError(FERR_DISABLEHARDERR);
     
    13861365          // saymsg(MB_ENTER,HWND_DESKTOP,DEBUG_STRING,"%s %s %s\r[%s]",dcd->info->extract,dcd->arcname,membername,construct);
    13871366          runemf2(SEPARATE | WINDOWED | WAIT |
    1388                     (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    1389                   dcd->hwndClient, construct, NULL,
     1367                  (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
     1368                  dcd->hwndClient, pszSrcFile, __LINE__, construct, NULL,
    13901369                  "%s %s %s",
    13911370                  dcd->info->extract,
    13921371                  BldQuotedFileName(szQuotedArcName, dcd->arcname),
    13931372                  BldQuotedFileName(szQuotedMemberName, membername));
    1394           // runemf2(SEPARATE | WINDOWED | WAIT |
    1395           //        (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
    1396           //        WAIT,
    1397           //      dcd->hwndClient, construct, NULL, "%s %s%s%s %s%s%s",
    1398           //      dcd->info->extract,
    1399           //      needs_quoting(dcd->arcname) ? "\"" : NullStr,
    1400           //      dcd->arcname,
    1401           //      needs_quoting(dcd->arcname) ? "\"" : NullStr,
    1402           //      needs_quoting(membername) ? "\"" : NullStr,
    1403           //      membername,
    1404           //      needs_quoting(membername) ? "\"" : NullStr);
    14051373          BldFullPathName(construct, construct, membername);
    1406           // if (*construct && construct[strlen(construct) - 1] != '\\')
    1407           //   strcat(construct, "\\");
    1408           // strcat(construct, membername);
    14091374          if (IsFile(construct) != -1) {
    14101375            rename(construct, filename);
     
    15221487        }
    15231488        runemf2(SEPARATE | WINDOWED | WAIT |
    1524                   (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    1525                 dcd->hwndClient, dcd->workdir, NULL,
     1489                (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
     1490                dcd->hwndClient, pszSrcFile, __LINE__, dcd->workdir, NULL,
    15261491                "%s %s %s",
    15271492                dcd->info->exwdirs ? dcd->info->exwdirs :
     
    15291494                BldQuotedFileName(szQuotedArcName, dcd->arcname),
    15301495                BldQuotedFileName(szQuotedMemberName, s));
    1531         // runemf2(SEPARATE | WINDOWED |
    1532         //        (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
    1533         //        WAIT,
    1534         //      dcd->hwndClient, dcd->workdir, NULL, "%s %s%s%s %s%s%s",
    1535         //      dcd->info->exwdirs ? dcd->info->exwdirs :
    1536         //                           dcd->info->extract,
    1537         //      needs_quoting(dcd->arcname) ? "\"" : NullStr,
    1538         //      dcd->arcname,
    1539         //      needs_quoting(dcd->arcname) ? "\"" : NullStr,
    1540         //      needs_quoting(s) ? "\"" : NullStr,
    1541         //      s,
    1542         //      needs_quoting(s) ? "\"" : NullStr);
    15431496        if (!dcd->info->exwdirs) {
    15441497          p = s;
     
    16071560
    16081561            BldQuotedFileName(szBuffer + strlen(szBuffer), ad.arcname);
    1609             // if (needs_quoting(ad.arcname))
    1610             //   strcat(szBuffer, "\"");
    1611             // strcat(szBuffer, ad.arcname);
    1612             // if (needs_quoting(ad.arcname))
    1613             //   strcat(szBuffer, "\"");
    16141562
    16151563            p = &szBuffer[strlen(szBuffer)];    // Remeber where archiver name ends
     
    16191567
    16201568              BldQuotedFileName(szBuffer + strlen(szBuffer), ad.mask.szMask);
    1621               // if (needs_quoting(ad.mask.szMask))
    1622               //        strcat(szBuffer, "\"");
    1623               // strcat(szBuffer, ad.mask.szMask);
    1624               // if (needs_quoting(ad.mask.szMask))
    1625               //        strcat(szBuffer, "\"");
    16261569            }
    16271570            strcat(szBuffer, " ");
     
    16321575
    16331576              if (IsFile(li->list[x]))
    1634                 BldQuotedFileName(szBuffer + strlen(szBuffer), li->list[x]);
     1577                BldQuotedFileName(szBuffer + strlen(szBuffer), li->list[x]);
    16351578              else
    1636                 BldQuotedFullPathName(szBuffer + strlen(szBuffer), li->list[x], "*");
    1637 
    1638               // if (needs_quoting(li->list[x]))
    1639               //        strcat(szBuffer, "\"");
    1640               // strcat(szBuffer, li->list[x]);
    1641               // if (!IsFile(li->list[x])) {
    1642               //        if (szBuffer[strlen(szBuffer) - 1] != '\\')
    1643               //          strcat(szBuffer, "\\");
    1644               //        strcat(szBuffer, "*");
    1645               // }
    1646               // if (needs_quoting(li->list[x]))
    1647               //        strcat(szBuffer, "\"");
     1579                 BldQuotedFullPathName(szBuffer + strlen(szBuffer), li->list[x], "*");
    16481580
    16491581              x++;
     
    16511583                  strlen(li->list[x]) + 5 > 1024) {
    16521584                runemf2(SEPARATE | WINDOWED |
    1653                           (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
    1654                           WAIT,
    1655                         hwnd, NULL, NULL, "%s", szBuffer);
     1585                        (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
     1586                        WAIT, hwnd, pszSrcFile, __LINE__,
     1587                        NULL, NULL, "%s", szBuffer);
    16561588                *p = 0;
    16571589              }
     
    17031635            strcat(cl, " ");
    17041636            BldQuotedFileName(cl + strlen(cl), dcd->arcname);
    1705             // if (li->type == IDM_DELETE)
    1706             //   sprintf(cl, "%s %s%s%s", dcd->info->delete,
    1707             //        (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
    1708             //        dcd->arcname,
    1709             //        (needs_quoting(dcd->arcname)) ? "\"" : NullStr);
    1710             // else
    1711             //   sprintf(cl, "%s %s%s%s", dcd->info->create,
    1712             //        (needs_quoting(dcd->arcname)) ? "\"" : NullStr,
    1713             //        dcd->arcname,
    1714             //        (needs_quoting(dcd->arcname)) ? "\"" : NullStr);
    17151637            endofit = &cl[strlen(cl)];
    17161638            z = 0;
    17171639            do {
    17181640              for (x = z; li->list[x] &&
    1719                    strlen(cl) + strlen(li->list[x]) < 999; x++) {
     1641                strlen(cl) + strlen(li->list[x]) < 999; x++) {
    17201642                strcat(cl, " ");
    17211643                BldQuotedFileName(cl + strlen(cl), li->list[x]);
    1722                 // if (needs_quoting(li->list[x]))
    1723                 //   strcat(cl, "\"");
    1724                 // strcat(cl, li->list[x]);
    1725                 // if (needs_quoting(li->list[x]))
    1726                 //   strcat(cl, "\"");
    17271644              }
    17281645              z = x;
    17291646              runemf2(SEPARATE | WINDOWED | WAIT |
    1730                         (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    1731                       hwnd, NullStr, NULL, "%s", cl);
     1647                      (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
     1648                      hwnd, pszSrcFile, __LINE__, NullStr, NULL, "%s", cl);
    17321649              *endofit = 0;
    17331650            } while (li->list[x]);
     
    18341751             strcat(cl, " ");
    18351752             BldQuotedFileName(cl + strlen(cl), li->arcname);
    1836             // sprintf(cl, "%s %s%s%s", (li->type == IDM_EXTRACT ||
    1837             //                        ((li->type == IDM_VIEW
    1838             //                          || li->type == IDM_VIEWTEXT
    1839             //                          || li->type == IDM_VIEWBINARY
    1840             //                          || li->type == IDM_VIEWARCHIVE
    1841             //                          || li->type == IDM_PRINT
    1842             //                          || li->type == IDM_EDIT
    1843             //                          || li->type == IDM_EDITTEXT
    1844             //                          || li->type == IDM_EDITBINARY
    1845             //                          && li->type == IDM_MCIPLAY)
    1846             //                         && !li->info->exwdirs)) ? li->info->
    1847             //      extract : li->info->exwdirs,
    1848             //      needs_quoting(li->arcname) ? "\"" : NullStr,
    1849             //      li->arcname,
    1850             //      needs_quoting(li->arcname) ? "\"" : NullStr);
    1851             endofit = &cl[strlen(cl)];
    1852             z = 0;
    1853             do {
    1854               for (x = z; li->list[x] &&
     1753             endofit = &cl[strlen(cl)];
     1754             z = 0;
     1755             do {
     1756               for (x = z; li->list[x] &&
    18551757                   strlen(cl) + strlen(li->list[x]) < 999; x++) {
    18561758                strcat(cl, " ");
    18571759                BldQuotedFileName(cl + strlen(cl), li->list[x]);
    1858                 // if (needs_quoting(li->list[x]))
    1859                 //   strcat(cl, "\"");
    1860                 // strcat(cl, li->list[x]);
    1861                 // if (needs_quoting(li->list[x]))
    1862                 //   strcat(cl, "\"");
    18631760                ptr = li->list[x];
    18641761                while (*ptr) {
     
    18701767              z = x;
    18711768              runemf2(SEPARATE | WINDOWED |
    1872                         (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
    1873                         WAIT,
    1874                       hwnd, li->targetpath, NULL, "%s", cl);
     1769                      (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) |
     1770                      WAIT, hwnd, pszSrcFile, __LINE__,
     1771                      li->targetpath, NULL, "%s", cl);
    18751772              *endofit = 0;
    18761773            } while (li->list[x]);
     
    19301827                         WINDOWED | SEPARATEKEEP | PROMPT,
    19311828                         li->targetpath,
    1932                          NULL, GetPString(IDS_EXECARCFILETITLETEXT));
     1829                         NULL, GetPString(IDS_EXECARCFILETITLETEXT),
     1830                         pszSrcFile, __LINE__);
    19331831            else if (li->type == IDM_VIRUSSCAN)
    19341832              ExecOnList(hwnd, virus, PROMPT | WINDOWED | SEPARATEKEEP,
    19351833                         li->targetpath, NULL,
    1936                          GetPString(IDS_VIRUSSCANARCHIVETITLETEXT));
     1834                         GetPString(IDS_VIRUSSCANARCHIVETITLETEXT),
     1835                         pszSrcFile, __LINE__);
    19371836            else if (li->type == IDM_VIEW || li->type == IDM_VIEWTEXT ||
    19381837                     li->type == IDM_VIEWBINARY || li->type == IDM_EDIT ||
     
    20351934                                  bined),
    20361935                           WINDOWED | SEPARATE, li->targetpath, li->list,
    2037                            NULL);
     1936                           NULL, pszSrcFile, __LINE__);
    20381937              }
    20391938              else {
     
    29352834        if (dcd->info->extract)
    29362835          runemf2(SEPARATE | WINDOWED |
    2937                     (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    2938                   hwnd, dcd->directory, NULL, "%s %s",
    2939                   dcd->info->extract,
     2836                  (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
     2837                  hwnd, pszSrcFile, __LINE__,
     2838                  dcd->directory, NULL, "%s %s", dcd->info->extract,
    29402839                  BldQuotedFileName(szQuotedArcName, dcd->arcname));
    2941           // runemf2(SEPARATE | WINDOWED |
    2942           //        (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    2943           //      hwnd, dcd->directory, NULL, "%s %s%s%s",
    2944           //      dcd->info->extract,
    2945           //      needs_quoting(dcd->arcname) ? "\"" : NullStr,
    2946           //      dcd->arcname,
    2947           //      needs_quoting(dcd->arcname) ? "\"" : NullStr);
    29482840        if (SHORT1FROMMP(mp1) == IDM_ARCEXTRACTEXIT)
    29492841          PostMsg(hwnd, WM_CLOSE, MPVOID, MPVOID);
     
    29542846        if (dcd->info->exwdirs)
    29552847          runemf2(SEPARATE | WINDOWED |
    2956                     (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    2957                   hwnd, dcd->directory, NULL,
    2958                   "%s %s",
     2848                  (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
     2849                  hwnd, pszSrcFile, __LINE__,
     2850                  dcd->directory, NULL, "%s %s",
    29592851                  dcd->info->exwdirs,
    29602852                  BldQuotedFileName(szQuotedArcName, dcd->arcname));
    2961           // runemf2(SEPARATE | WINDOWED |
    2962           //        (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED),
    2963           //      hwnd, dcd->directory, NULL, "%s %s%s%s",
    2964           //      dcd->info->exwdirs,
    2965           //      needs_quoting(dcd->arcname) ? "\"" : NullStr,
    2966           //      dcd->arcname,
    2967           //      needs_quoting(dcd->arcname) ? "\"" : NullStr);
    29682853        if (SHORT1FROMMP(mp1) == IDM_ARCEXTRACTWDIRSEXIT)
    29692854          PostMsg(hwnd, WM_CLOSE, MPVOID, MPVOID);
     
    30332918        if (dcd->info->test)
    30342919          runemf2(SEPARATEKEEP | WINDOWED | MAXIMIZED,
    3035                   hwnd, NULL, NULL,
     2920                  hwnd, pszSrcFile, __LINE__, NULL, NULL,
    30362921                  "%s %s",dcd->info->test,
    30372922                  BldQuotedFileName(szQuotedArcName, dcd->arcname));
    3038           // runemf2(SEPARATEKEEP | WINDOWED | MAXIMIZED,
    3039           //      hwnd, NULL, NULL, "%s %s%s%s",dcd->info->test,
    3040           //      needs_quoting(dcd->arcname) ? "\"" : NullStr,
    3041           //      dcd->arcname,
    3042           //      needs_quoting(dcd->arcname) ? "\"" : NullStr);
    30432923        break;
    30442924
Note: See TracChangeset for help on using the changeset viewer.