Changeset 1077 for trunk/dll/collect.c
- Timestamp:
- Jul 18, 2008, 8:11:54 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/dll/collect.c (modified) (31 diffs)
Legend:
- Unmodified
- Added
- Removed
-
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 the53 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" // RunCommand80 #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 # endif809 # 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 FORTIFY897 Fortify_EnterScope();898 # endif899 918 wk = xmallocz(sizeof(WORKER), pszSrcFile, __LINE__); 900 919 if (!wk) … … 911 930 Runtime_Error(pszSrcFile, __LINE__, 912 931 GetPString(IDS_COULDNTSTARTTHREADTEXT)); 913 free(wk);932 free(wk); 914 933 FreeListInfo((LISTINFO *) mp1); 915 # ifdef FORTIFY 916 Fortify_LeaveScope(); 917 # endif 918 } 919 } 920 } 921 } 934 } 935 } 936 } 937 } 938 # ifdef FORTIFY 939 DosSleep(1); // Let receiver take ownership 940 Fortify_LeaveScope(); 941 # endif 922 942 return 0; 923 943 924 944 case UM_ACTION: 945 # ifdef FORTIFY 946 Fortify_EnterScope(); 947 # endif 925 948 if (mp1) { 949 # ifdef FORTIFY 950 Fortify_ChangeOwner(mp1); 951 # endif 926 952 dcd = WinQueryWindowPtr(hwnd, QWL_USER); 927 953 if (dcd) { 928 954 WORKER *wk; 929 # ifdef FORTIFY930 Fortify_EnterScope();931 # endif932 955 wk = xmallocz(sizeof(WORKER), pszSrcFile, __LINE__); 933 956 if (!wk) … … 944 967 Runtime_Error(pszSrcFile, __LINE__, 945 968 GetPString(IDS_COULDNTSTARTTHREADTEXT)); 946 free(wk);969 free(wk); 947 970 FreeListInfo((LISTINFO *) mp1); 948 # ifdef FORTIFY 949 Fortify_LeaveScope(); 950 # endif 951 } 952 } 953 } 954 } 971 } 972 } 973 } 974 } 975 # ifdef FORTIFY 976 DosSleep(1); // Let receiver take ownership 977 Fortify_LeaveScope(); 978 # endif 955 979 return 0; 956 980 … … 975 999 # ifdef FORTIFY 976 1000 Fortify_LeaveScope(); 977 # endif1001 # endif 978 1002 WinSetWindowPtr(dcd->hwndCnr, QWL_USER, NULL); 979 1003 } … … 1470 1494 case UM_COLLECTFROMFILE: 1471 1495 if (mp1) { 1472 if (!dcd) { 1473 free(mp1);1474 # ifdef FORTIFY 1475 Fortify_LeaveScope(); 1476 # endif 1496 # ifdef FORTIFY 1497 Fortify_EnterScope(); 1498 Fortify_ChangeOwner(mp1); 1499 # endif 1500 if (!dcd) 1477 1501 Runtime_Error2(pszSrcFile, __LINE__, IDS_NODATATEXT); 1478 }1479 1502 else { 1480 1503 if (!PostMsg(dcd->hwndObject, UM_COLLECTFROMFILE, mp1, mp2)) { 1481 1504 Runtime_Error(pszSrcFile, __LINE__, "PostMsg"); 1482 free(mp1); 1483 # ifdef FORTIFY 1484 Fortify_LeaveScope(); 1485 # endif 1486 } 1487 } 1505 } 1506 } 1507 free(mp1); 1508 # ifdef FORTIFY 1509 DosSleep(1); // Let receiver take ownership 1510 Fortify_LeaveScope(); 1511 # endif 1488 1512 } 1489 1513 return 0; … … 1606 1630 } 1607 1631 if (insert_filename(hwnd, filename, FALSE, FALSE)) { 1632 # ifdef FORTIFY 1633 Fortify_EnterScope(); 1634 # endif 1608 1635 p = xstrdup(filename, pszSrcFile, __LINE__); 1609 1636 if (p) { 1610 1637 if (!PostMsg(hwnd, UM_COLLECTFROMFILE, MPFROMP(p), MPVOID)) 1611 free(p); 1612 # ifdef FORTIFY 1613 Fortify_LeaveScope(); 1614 # endif 1615 } 1638 free(p); 1639 } 1640 # ifdef FORTIFY 1641 DosSleep(1); // Let receiver take ownership 1642 Fortify_LeaveScope(); 1643 # endif 1616 1644 } 1617 1645 } … … 1727 1755 { 1728 1756 LISTINFO *li; 1729 # ifdef FORTIFY1730 Fortify_EnterScope();1731 # endif1757 # ifdef FORTIFY 1758 Fortify_EnterScope(); 1759 # endif 1732 1760 li = xmallocz(sizeof(LISTINFO), pszSrcFile, __LINE__); 1733 1761 if (li) { … … 1741 1769 } 1742 1770 } 1771 # ifdef FORTIFY 1772 DosSleep(1); // Let receiver take ownership 1773 Fortify_LeaveScope(); 1774 # endif 1743 1775 } 1744 1776 break; … … 1778 1810 if (mp2) { 1779 1811 LISTINFO *li; 1780 # ifdef FORTIFY1781 Fortify_EnterScope();1782 # endif1812 # ifdef FORTIFY 1813 Fortify_EnterScope(); 1814 # endif 1783 1815 li = xmallocz(sizeof(LISTINFO), pszSrcFile, __LINE__); 1784 1816 if (li) { … … 1794 1826 else 1795 1827 FreeList(mp2); 1828 # ifdef FORTIFY 1829 DosSleep(1); // Let receiver take ownership 1830 Fortify_LeaveScope(); 1831 # endif 1796 1832 } 1797 1833 break; 1798 1834 1799 1835 case IDM_UNDELETE: 1800 {1836 { 1801 1837 PCNRITEM pci; 1802 CHAR path[CCHMAXPATH];1803 HOBJECT hObject;1804 HWND hwndDesktop;1805 1806 hObject = WinQueryObject("<XWP_TRASHCAN>");1807 if (hObject != NULLHANDLE && fTrashCan) {1808 hwndDesktop = WinQueryDesktopWindow((HAB) 0, NULLHANDLE);1838 CHAR path[CCHMAXPATH]; 1839 HOBJECT hObject; 1840 HWND hwndDesktop; 1841 1842 hObject = WinQueryObject("<XWP_TRASHCAN>"); 1843 if (hObject != NULLHANDLE && fTrashCan) { 1844 hwndDesktop = WinQueryDesktopWindow((HAB) 0, NULLHANDLE); 1809 1845 WinSetFocus(HWND_DESKTOP, hwndDesktop); 1810 WinOpenObject(hObject, 0, TRUE);1811 }1812 else {1813 pci = (PCNRITEM) CurrentRecord(hwnd);1814 if (pci && (INT) pci != -1) {1815 strcpy(path, pci->pszFileName);1816 MakeValidDir(path);1817 WinDlgBox(HWND_DESKTOP, hwnd, UndeleteDlgProc, FM3ModHandle,1818 UNDEL_FRAME, MPFROMP(path));1819 }1846 WinOpenObject(hObject, 0, TRUE); 1847 } 1848 else { 1849 pci = (PCNRITEM) CurrentRecord(hwnd); 1850 if (pci && (INT) pci != -1) { 1851 strcpy(path, pci->pszFileName); 1852 MakeValidDir(path); 1853 WinDlgBox(HWND_DESKTOP, hwnd, UndeleteDlgProc, FM3ModHandle, 1854 UNDEL_FRAME, MPFROMP(path)); 1855 } 1820 1856 } 1821 1857 } … … 1891 1927 DIR_FILTER), &dcd->mask, FALSE); 1892 1928 } 1893 break;1929 break; 1894 1930 1895 1931 case IDM_UNHIDEALL: 1896 WinSendMsg(hwnd, CM_FILTER, MPFROMP(Filter), MPFROMP(&dcd->mask));1897 break;1932 WinSendMsg(hwnd, CM_FILTER, MPFROMP(Filter), MPFROMP(&dcd->mask)); 1933 break; 1898 1934 1899 1935 case IDM_HIDEALL: … … 2092 2128 LISTINFO *li; 2093 2129 ULONG action = UM_ACTION; 2094 # ifdef FORTIFY2095 Fortify_EnterScope();2096 # endif2130 # ifdef FORTIFY 2131 Fortify_EnterScope(); 2132 # endif 2097 2133 li = xmallocz(sizeof(LISTINFO), pszSrcFile, __LINE__); 2098 2134 if (li) { … … 2137 2173 UnHilite(hwnd, TRUE, &dcd->lastselection, dcd->ulItemsToUnHilite); 2138 2174 } 2139 else2140 free(li);2141 # ifdef FORTIFY 2142 Fortify_LeaveScope(); 2143 # endif 2144 } 2175 else 2176 free(li); 2177 } 2178 # ifdef FORTIFY 2179 Fortify_LeaveScope(); 2180 # endif 2145 2181 } 2146 2182 break; … … 2700 2736 2701 2737 if ((INT)mp1 == 5 || (INT)mp1 == 13 || (INT)mp1 == 21) 2702 hwnd = StartViewer(HWND_DESKTOP, (INT)mp1,2703 (CHAR *)mp2, dcd->hwndFrame);2738 hwnd = StartViewer(HWND_DESKTOP, (INT)mp1, 2739 (CHAR *)mp2, dcd->hwndFrame); 2704 2740 else 2705 hwnd = StartMLEEditor(dcd->hwndParent,2706 (INT)mp1, (CHAR *)mp2, dcd->hwndFrame);2741 hwnd = StartMLEEditor(dcd->hwndParent, 2742 (INT)mp1, (CHAR *)mp2, dcd->hwndFrame); 2707 2743 free((CHAR *)mp2); 2708 2744 return MRFROMLONG(hwnd); … … 2764 2800 { 2765 2801 PFNWP oldMenuProc = WinQueryWindowPtr(hwnd, QWL_USER); 2766 static short sLastMenuitem;2802 static short sLastMenuitem; 2767 2803 2768 2804 switch (msg) { … … 2791 2827 MOUSEMSG(&msg)->y < rectl.yTop) 2792 2828 break; 2793 } // for2829 } // for 2794 2830 2795 2831 … … 2859 2895 # ifdef FORTIFY 2860 2896 Fortify_EnterScope(); 2861 # endif2897 # endif 2862 2898 dcd = xmallocz(sizeof(DIRCNRDATA), pszSrcFile, __LINE__); 2863 2899 if (!dcd) { … … 2898 2934 IDS_WINCREATEWINDOW); 2899 2935 PostMsg(hwndClient, WM_CLOSE, MPVOID, MPVOID); 2900 free(dcd); 2901 # ifdef FORTIFY 2902 Fortify_LeaveScope(); 2903 # endif 2936 free(dcd); 2904 2937 hwndFrame = (HWND) 0; 2905 2938 } … … 2952 2985 } 2953 2986 } 2987 # ifdef FORTIFY 2988 DosSleep(1); // Let receiver take ownership 2989 Fortify_LeaveScope(); 2990 # endif 2954 2991 } 2955 2992 return hwndFrame;
Note:
See TracChangeset
for help on using the changeset viewer.
