Changeset 1077
- Timestamp:
- 07/18/08 20:11:54 (3 months ago)
- Location:
- trunk
- Files:
-
- 2 added
- 18 modified
-
dll/arccnrs.c (modified) (28 diffs)
-
dll/collect.c (modified) (31 diffs)
-
dll/dircnrs.c (modified) (20 diffs)
-
dll/filldir.c (modified) (3 diffs)
-
dll/fortify.c (modified) (10 diffs)
-
dll/fortify.h (modified) (5 diffs)
-
dll/init.c (modified) (7 diffs)
-
dll/killproc.c (modified) (7 diffs)
-
dll/mainwnd.c (modified) (191 diffs)
-
dll/makelist.c (modified) (4 diffs)
-
dll/makelist.h (modified) (2 diffs)
-
dll/misc.c (modified) (8 diffs)
-
dll/misc.h (added)
-
dll/objwin.c (modified) (2 diffs)
-
dll/treecnr.c (modified) (23 diffs)
-
dll/ufortify.h (modified) (2 diffs)
-
dll/walkem.c (modified) (11 diffs)
-
dll/walkem.h (added)
-
dll/worker.c (modified) (10 diffs)
-
fm3.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/arccnrs.c
r1076 r1077  339 339 if (pai->pszFileName && pai->pszFileName != NullStr) { 340 340 psz = pai->pszFileName; 341  pai->pszFileName = NULL;  341 pai->pszFileName = NULL; // 08 Jul 08 SHL was NulStr 342 342 free(psz); 343 343 } … …  1230 1230  1231 1231 switch (msg) {  1232 case WM_CREATE:  1233 DbgMsg(pszSrcFile, __LINE__, "WM_CREATE mp1 %p mp2 %p", mp1, mp2); // 18 Jul 08 SHL fixme  1234 break;  1235  1232 1236 case DM_PRINTOBJECT: 1233 1237 case DM_DISCARDOBJECT: … …  1347 1351  1348 1352 case UM_SETUP:  1353 # ifdef FORTIFY  1354 Fortify_EnterScope();  1355 # endif 1349 1356 dcd = WinQueryWindowPtr(hwnd, QWL_USER); 1350 1357 if (!dcd) { … …  1353 1360 } 1354 1361 else {  1362 # ifdef FORTIFY  1363 Fortify_ChangeOwner(dcd);  1364 # endif 1355 1365 /* set unique id */ 1356 1366 WinSetWindowUShort(hwnd, QWS_ID, ARCOBJ_FRAME + (ARC_FRAME - dcd->id)); … …  1500 1510  1501 1511 if (li && li->list && li->list[0]) { 1502  printf("%x/r", li->type); fflush(stdout); 1512 printf("%x/r", li->type); fflush(stdout); 1503 1513 switch (li->type) { 1504 1514 case IDM_ARCHIVE: … …  1565 1575 case IDM_DELETE: 1566 1576 { 1567  CHAR *endofit;Â1568  PSZ pszCmdLine; 1577 CHAR *endofit;  1578 PSZ pszCmdLine; 1569 1579 INT z; 1570 1580 CHECKLIST ck; … …  1592 1602 li->list = ck.list; 1593 1603 if (!li->list || !li->list[0]) 1594  break;Â1595  pszCmdLine = xmallocz(MaxComLineStrg, pszSrcFile, __LINE__);Â1596  if (!pszCmdLine)Â1597  break; 1604 break;  1605 pszCmdLine = xmallocz(MaxComLineStrg, pszSrcFile, __LINE__);  1606 if (!pszCmdLine)  1607 break; 1598 1608 strcpy(pszCmdLine, li->type == IDM_DELETE ? 1599 1609 dcd->info->delete : … …  1613 1623 (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED), 1614 1624 hwnd, pszSrcFile, __LINE__, NullStr, NULL, "%s", pszCmdLine); 1615  *endofit = 0;Â1616  free(pszCmdLine); 1625 *endofit = 0;  1626 free(pszCmdLine); 1617 1627 } while (li->list[x]); 1618 1628 PostMsg(dcd->hwndCnr, UM_RESCAN, MPFROMSHORT(1), MPVOID); … …  1639 1649 case IDM_OPENSETTINGS: 1640 1650 { 1641  CHAR *endofit, *ptr;Â1642  PSZ pszCmdLine; 1651 CHAR *endofit, *ptr;  1652 PSZ pszCmdLine; 1643 1653 INT z; 1644 1654 if ((li->type == IDM_EXTRACT && !li->info->extract) || … …  1699 1709 } 1700 1710 if (!li->list || !li->list[0]) 1701  break;Â1702  pszCmdLine = xmallocz(MaxComLineStrg, pszSrcFile, __LINE__);Â1703  if (!pszCmdLine)Â1704  break; 1711 break;  1712 pszCmdLine = xmallocz(MaxComLineStrg, pszSrcFile, __LINE__);  1713 if (!pszCmdLine)  1714 break; 1705 1715 strcpy(pszCmdLine, 1706 1716 (li->type == IDM_EXTRACT || … …  1739 1749 (fArcStuffVisible ? 0 : BACKGROUND | MINIMIZED) | 1740 1750 WAIT, hwnd, pszSrcFile, __LINE__, 1741  li->targetpath, NULL, "%s", pszCmdLine); 1751 li->targetpath, NULL, "%s", pszCmdLine); 1742 1752 *endofit = 0; 1743 1753 } while (li->list[x]); … …  1757 1767 p = xmalloc(strlen(temp) + strlen(li->targetpath) + 2, 1758 1768 pszSrcFile, __LINE__); 1759  if (p) {Â1760  BldFullPathName(p, li->targetpath, temp); 1769 if (p) {  1770 BldFullPathName(p, li->targetpath, temp); 1761 1771 /*strcpy(p, li->targetpath); 1762 1772 if (p[strlen(p) - 1] != '\\') … …  1827 1837 } 1828 1838 } 1829  } 1839 } 1830 1840 BldFullPathName(pszCmdLine, li->targetpath, li->list[x]); 1831 1841 temp = li->list[x]; 1832  li->list[x] = xstrdup(pszCmdLine, pszSrcFile, __LINE__); 1842 li->list[x] = xstrdup(pszCmdLine, pszSrcFile, __LINE__); 1833 1843 if (!li->list[x]) 1834 1844 li->list[x] = temp; 1835 1845 else 1836 1846 xfree(temp, pszSrcFile, __LINE__); 1837  }Â1838  free(pszCmdLine); 1847 }  1848 free(pszCmdLine); 1839 1849 if (li->type == IDM_VIEW || li->type == IDM_EDIT) { 1840 1850  … …  1856 1866 if (li->type == IDM_MCIPLAY) { 1857 1867  1858  FILE *fp;Â1859  CHAR szTempFile[CCHMAXPATH];Â1860   1861  BldFullPathName(szTempFile, pTmpDir, "$FM2PLAY.$$$"); 1868 FILE *fp;  1869 CHAR szTempFile[CCHMAXPATH];  1870   1871 BldFullPathName(szTempFile, pTmpDir, "$FM2PLAY.$$$"); 1862 1872 fp = xfopen(szTempFile, "w", pszSrcFile, __LINE__); 1863 1873 if (fp) { … …  1866 1876 fprintf(fp, "%s\n", li->list[x]); 1867 1877 fprintf(fp, ";end\n"); 1868  fclose(fp);Â1869  strrev(szTempFile);Â1870  strcat(szTempFile, "@/");Â1871  strrev(szTempFile); 1878 fclose(fp);  1879 strrev(szTempFile);  1880 strcat(szTempFile, "@/");  1881 strrev(szTempFile); 1872 1882 RunFM2Util("FM2PLAY.EXE", szTempFile); 1873 1883 } … …  1913 1923 li->type == IDM_OPENSETTINGS) { 1914 1924 WORKER *wk; 1915  # ifdef FORTIFYÂ1916  Fortify_EnterScope();Â1917  # endif 1925 # ifdef FORTIFY  1926 Fortify_EnterScope();  1927 # endif 1918 1928 wk = xmallocz(sizeof(WORKER), pszSrcFile, __LINE__); 1919 1929 if (!wk) 1920  FreeListInfo(li); 1930 FreeListInfo(li); 1921 1931 else { 1922  wk->size = sizeof(WORKER); 1923  wk->hwndCnr = dcd->hwndCnr; 1924  wk->hwndParent = dcd->hwndParent; 1925  wk->hwndFrame = dcd->hwndFrame; 1926  wk->hwndClient = dcd->hwndClient; 1927  wk->li = li; 1928  strcpy(wk->directory, dcd->directory); 1929  if (_beginthread(Action, NULL, 122880, (PVOID) wk) == -1) { 1930  Runtime_Error(pszSrcFile, __LINE__, 1931  GetPString(IDS_COULDNTSTARTTHREADTEXT)); 1932  free(wk); 1933  FreeListInfo((LISTINFO *) mp1); 1934  # ifdef FORTIFY 1935  Fortify_LeaveScope(); 1936  # endif 1937  } 1938  } 1939    1932 wk->size = sizeof(WORKER);  1933 wk->hwndCnr = dcd->hwndCnr;  1934 wk->hwndParent = dcd->hwndParent;  1935 wk->hwndFrame = dcd->hwndFrame;  1936 wk->hwndClient = dcd->hwndClient;  1937 wk->li = li;  1938 strcpy(wk->directory, dcd->directory);  1939 if (_beginthread(Action, NULL, 122880, (PVOID) wk) == -1) {  1940 Runtime_Error(pszSrcFile, __LINE__,  1941 GetPString(IDS_COULDNTSTARTTHREADTEXT));  1942 free(wk);  1943 FreeListInfo((LISTINFO *) mp1);  1944 }  1945 }  1946 # ifdef FORTIFY  1947 Fortify_LeaveScope();  1948 # endif 1940 1949 } 1941 1950 else { … …  1954 1963 else 1955 1964 viewtype = 0;  1965 # ifdef FORTIFY  1966 Fortify_EnterScope();  1967 # endif 1956 1968 temp = xstrdup(li->list[x], pszSrcFile, __LINE__); 1957 1969 if (temp) { … …  1964 1976 free(temp); 1965 1977 }  1978 # ifdef FORTIFY  1979 DosSleep(1); // Allow MassAction to take ownership  1980 Fortify_LeaveScope();  1981 # endif 1966 1982 } 1967 1983 } … …  2020 2036 if (li->type != IDM_OPENDEFAULT && li->type != IDM_OPENSETTINGS) 2021 2037 { 2022  FreeListInfo(li); 2038 FreeListInfo(li); 2023 2039 } 2024 2040 } … …  2045 2061 free(dcd); 2046 2062 # ifdef FORTIFY 2047  //Fortify_LeaveScope();Â2048  # endif 2063 Fortify_LeaveScope();  2064 # endif 2049 2065 WinSetWindowPtr(dcd->hwndCnr, QWL_USER, NULL); 2050 2066 } … …  2592 2608  2593 2609 if ((INT)mp1 == 5 || (INT)mp1 == 13 || (INT)mp1 == 21) 2594  hwnd = StartViewer(HWND_DESKTOP, (INT)mp1,Â2595  (CHAR *)mp2, dcd->hwndFrame); 2610 hwnd = StartViewer(HWND_DESKTOP, (INT)mp1,  2611 (CHAR *)mp2, dcd->hwndFrame); 2596 2612 else 2597  hwnd = StartMLEEditor(dcd->hwndParent,Â2598  (INT)mp1, (CHAR *)mp2, dcd->hwndFrame); 2613 hwnd = StartMLEEditor(dcd->hwndParent,  2614 (INT)mp1, (CHAR *)mp2, dcd->hwndFrame); 2599 2615 free((CHAR *)mp2); 2600 2616 return MRFROMLONG(hwnd); … …  2953 2969 { 2954 2970 LISTINFO *li; 2955  # ifdef FORTIFYÂ2956  Fortify_EnterScope();Â2957  # endif 2971 # ifdef FORTIFY  2972 Fortify_EnterScope();  2973 # endif 2958 2974 li = xmallocz(sizeof(LISTINFO), pszSrcFile, __LINE__); 2959 2975 if (li) { … …  3015 3031 case IDM_VIRUSSCAN: 3016 3032 case IDM_OPENDEFAULT: 3017  case IDM_OPENSETTINGS:Â3018  case IDM_MCIPLAY: 3033 case IDM_OPENSETTINGS:  3034 case IDM_MCIPLAY: 3019 3035 strcpy(li->targetpath, dcd->workdir); 3020 3036 break; … …  3031 3047 UnHilite(hwnd, TRUE, &dcd->lastselection, 0); 3032 3048 } 3033  else { 3049 else { 3034 3050 free(li); 3035  # ifdef FORTIFY 3036  Fortify_LeaveScope(); 3037  # endifÂ3038  } 3039  }  3051 }  3052 }  3053 # ifdef FORTIFY  3054 Fortify_LeaveScope();  3055 # endif 3040 3056 } 3041 3057 break; … …  3509 3525 # ifdef FORTIFY 3510 3526 Fortify_EnterScope(); 3511  # endif 3527 # endif 3512 3528 dcd = xmallocz(sizeof(DIRCNRDATA), pszSrcFile, __LINE__); 3513 3529 if (!dcd) { … …  3519 3535 dcd->id = id; 3520 3536 dcd->type = ARC_FRAME; 3521  if (!pTmpDir) {Â3522  save_dir2(dcd->workdir);Â3523  if (dcd->workdir[strlen(dcd->workdir) - 1] != '\\')Â3524  strcat(dcd->workdir, "\\");Â3525  sprintf(dcd->workdir + strlen(dcd->workdir), "%s.%03x",Â3526  ArcTempRoot, (clock() & 4095));Â3527  }Â3528  elseÂ3529  sprintf(dcd->workdir, "%s.%03x",Â3530  ArcTempRoot, (clock() & 4095)); 3537 if (!pTmpDir) {  3538 save_dir2(dcd->workdir);  3539 if (dcd->workdir[strlen(dcd->workdir) - 1] != '\\')  3540 strcat(dcd->workdir, "\\");  3541 sprintf(dcd->workdir + strlen(dcd->workdir), "%s.%03x",  3542 ArcTempRoot, (clock() & 4095));  3543 }  3544 else  3545 sprintf(dcd->workdir, "%s.%03x",  3546 ArcTempRoot, (clock() & 4095)); 3531 3547 strcpy(dcd->arcname, fullname); 3532 3548 if (*extractpath) { … …  3598 3614 IDS_WINCREATEWINDOW); 3599 3615 PostMsg(hwndClient, WM_CLOSE, MPVOID, MPVOID); 3600  free(dcd); 3601  # ifdef FORTIFY 3602  Fortify_LeaveScope(); 3603  # endif  3616 free(dcd); 3604 3617 hwndFrame = (HWND) 0; 3605 3618 } … …  3692 3705 } 3693 3706 }  3707 # ifdef FORTIFY  3708 Fortify_LeaveScope();  3709 # endif 3694 3710 } 3695 3711 } -
trunk/dll/collect.c
r1065 r1077  50 50 06 Jul 08 GKY Update delete/undelete to include move to and open XWP trashcan 51 51 11 Jul 08 JBS Ticket 230: Simplified code and eliminated some local variables by incorporating 52  all the details view settings (both the global variables and those in theÂ53  DIRCNRDATA struct) into a new struct: DETAILS_SETTINGS. 52 all the details view settings (both the global variables and those in the  53 DIRCNRDATA struct) into a new struct: DETAILS_SETTINGS. 54 54  55 55 ***********************************************************************/ … …  78 78 #include "tmrsvcs.h" // ITIMER_DESC 79 79 #include "notebook.h" // CfgDlgProc 80  #include "command.h" // RunCommand 80 #include "command.h" // RunCommand 81 81 #include "fm3dll.h" 82 82  … …  466 466 switch (msg) { 467 467 case WM_CREATE:  468 // 18 Jul 08 SHL fixme to doc why messsage gets lost  469 DbgMsg(pszSrcFile, __LINE__, "WM_CREATE mp1 %p mp2 %p", mp1, mp2); // 18 Jul 08 SHL fixme 468 470 break; 469 471  … …  505 507  506 508 case UM_SETUP:  509 # ifdef FORTIFY  510 Fortify_EnterScope();  511 # endif 507 512 dcd = WinQueryWindowPtr(hwnd, QWL_USER); 508 513 if (dcd) {  514 # ifdef FORTIFY  515 Fortify_ChangeOwner(dcd);  516 # endif 509 517 /* set unique id */ 510 518 WinSetWindowUShort(hwnd, … …  601 609 nm = 1; 602 610 hdir = HDIR_CREATE; 603  DosError(FERR_DISABLEHARDERR);Â604  if (FindCnrRecord(dcd->hwndCnr, 611 DosError(FERR_DISABLEHARDERR);  612 if (FindCnrRecord(dcd->hwndCnr, 605 613 li->list[x], 606 614 NULL, 607 615 FALSE, 608 616 FALSE, 609  TRUE)) {Â610  pci = UpdateCnrRecord(dcd->hwndCnr, li->list[x], FALSE, dcd);Â611  if (Filter((PMINIRECORDCORE) pci, (PVOID) & dcd->mask)) {Â612  pci->rc.flRecordAttr &= ~CRA_FILTERED;Â613  WinSendMsg(dcd->hwndCnr, CM_INVALIDATERECORD, MPVOID,Â614  MPFROM2SHORT(0, CMA_REPOSITION | CMA_ERASE));Â615  }Â616  pci = (PCNRITEM) pci->rc.preccNextRecord; 617 TRUE)) {  618 pci = UpdateCnrRecord(dcd->hwndCnr, li->list[x], FALSE, dcd);  619 if (Filter((PMINIRECORDCORE) pci, (PVOID) & dcd->mask)) {  620 pci->rc.flRecordAttr &= ~CRA_FILTERED;  621 WinSendMsg(dcd->hwndCnr, CM_INVALIDATERECORD, MPVOID,  622 MPFROM2SHORT(0, CMA_REPOSITION | CMA_ERASE));  623 }  624 pci = (PCNRITEM) pci->rc.preccNextRecord; 617 625 if (pciP) 618 626 pciP->rc.preccNextRecord = (PMINIRECORDCORE) pci; 619 627 else 620  pciFirst = pci;Â621  } 628 pciFirst = pci;  629 } 622 630 else if (*li->list[x] && 623 631 !DosQueryPathInfo(li->list[x], FIL_QUERYFULLNAME, … …  631 639 &fb4, sizeof(fb4), &nm, FIL_QUERYEASIZEL)) { 632 640 DosFindClose(hdir); 633  priority_normal();Â634  *fb4.achName = 0;Â635  ullTotalBytes = FillInRecordFromFFB(dcd->hwndCnr,Â636  pci, 641 priority_normal();  642 *fb4.achName = 0;  643 ullTotalBytes = FillInRecordFromFFB(dcd->hwndCnr,  644 pci, 637 645 fullname, &fb4, FALSE, dcd); 638  dcd->ullTotalBytes += ullTotalBytes;Â639  pciP = pci;Â640  pci = (PCNRITEM) pci->rc.preccNextRecord; 646 dcd->ullTotalBytes += ullTotalBytes;  647 pciP = pci;  648 pci = (PCNRITEM) pci->rc.preccNextRecord; 641 649 } 642 650 else { … …  647 655 pciP->rc.preccNextRecord = (PMINIRECORDCORE) pci; 648 656 else 649  pciFirst = pci;Â650  if (pciT)Â651  FreeCnrItemData(pciT); // FreeCnrItem(hwnd, pciT); 657 pciFirst = pci;  658 if (pciT)  659 FreeCnrItemData(pciT); // FreeCnrItem(hwnd, pciT); 652 660 ulMaxFiles--; // Remember gone 653 661 } … …  680 688 case UM_COLLECTFROMFILE: 681 689 dcd = WinQueryWindowPtr(hwnd, QWL_USER);  690 # ifdef FORTIFY  691 Fortify_EnterScope();  692 # endif  693  682 694 if (dcd && mp1) { 683 695 FILESTATUS4L fs4; … …  690 702 size_t c; 691 703   704 # ifdef FORTIFY  705 Fortify_ChangeOwner(mp1);  706 # endif  707  692 708 fp = _fsopen((CHAR *)mp1, "r", SH_DENYNO); 693 709 if (fp) { … …  722 738 } 723 739 /* fullname now contains name of file to collect */ 724  DosError(FERR_DISABLEHARDERR);Â725  if (FindCnrRecord(dcd->hwndCnr, 740 DosError(FERR_DISABLEHARDERR);  741 if (FindCnrRecord(dcd->hwndCnr, 726 742 fullname, 727 743 NULL, 728 744 FALSE, 729 745 FALSE, 730  TRUE)) {Â731  pci = UpdateCnrRecord(dcd->hwndCnr, fullname, FALSE, dcd);Â732  if (Filter((PMINIRECORDCORE) pci, (PVOID) & dcd->mask)) {Â733  pci->rc.flRecordAttr &= ~CRA_FILTERED;Â734  WinSendMsg(dcd->hwndCnr, CM_INVALIDATERECORD, MPVOID,Â735  MPFROM2SHORT(0, CMA_REPOSITION | CMA_ERASE));Â736  }Â737  /*pci = (PCNRITEM) pci->rc.preccNextRecord; 746 TRUE)) {  747 pci = UpdateCnrRecord(dcd->hwndCnr, fullname, FALSE, dcd);  748 if (Filter((PMINIRECORDCORE) pci, (PVOID) & dcd->mask)) {  749 pci->rc.flRecordAttr &= ~CRA_FILTERED;  750 WinSendMsg(dcd->hwndCnr, CM_INVALIDATERECORD, MPVOID,  751 MPFROM2SHORT(0, CMA_REPOSITION | CMA_ERASE));  752 }  753 /*pci = (PCNRITEM) pci->rc.preccNextRecord; 738 754 if (pciP) 739 755 pciP->rc.preccNextRecord = (PMINIRECORDCORE) pci; 740 756 else 741  pciFirst = pci;*/Â742  } 757 pciFirst = pci;*/  758 } 743 759 else if (IsFullName(fullname) && 744 760 !IsRoot(fullname) && … …  746 762 FIL_QUERYEASIZEL, 747 763 &fs4, 748  sizeof(fs4))) { 764 sizeof(fs4))) { 749 765 /* collect it */ 750 766 pci = WinSendMsg(dcd->hwndCnr, … …  791 807 # ifdef FORTIFY 792 808 Fortify_LeaveScope(); 793  # endif 809 # endif 794 810 return 0; 795 811  … …  890 906  891 907 case UM_MASSACTION:  908 # ifdef FORTIFY  909 Fortify_EnterScope();  910 # endif 892 911 if (mp1) {  912 # ifdef FORTIFY  913 Fortify_ChangeOwner(mp1);  914 # endif 893 915 dcd = WinQueryWindowPtr(hwnd, QWL_USER); 894 916 if (dcd) { 895 917 WORKER *wk; 896  # ifdef FORTIFYÂ897  Fortify_EnterScope();Â898  # endifÂ899 918 wk = xmallocz(sizeof(WORKER), pszSrcFile, __LINE__); 900 919 if (!wk)Â
![(please configure the [header_logo] section in trac.ini)](/fm2/chrome/site/your_project_logo.png)