Changeset 1394 for trunk/dll/worker.c
- Timestamp:
- Feb 5, 2009, 5:17:25 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/worker.c
r1358 r1394 7 7 8 8 Copyright (c) 1993-98 M. Kimes 9 Copyright (c) 2001, 200 8Steven H. Levine9 Copyright (c) 2001, 2009 Steven H. Levine 10 10 11 11 16 Oct 02 SHL Comments … … 37 37 25 Dec 08 GKY Add code to allow write verify to be turned off on a per drive basis 38 38 25 Dec 08 GKY Add DRIVE_RSCANNED flag to monitor for the first recursive drive scan per session 39 39 to prevent duplicate directory names in tree following a copy before initial scan. 40 40 41 41 ***********************************************************************/ … … 678 678 Retry: 679 679 { 680 CHAR newname[CCHMAXPATH], *moving, *move, *moved; 680 CHAR newname[CCHMAXPATH]; 681 PCSZ moving, move, moved; 681 682 APIRET rc; 682 683 INT type; … … 808 809 (usedtarget) ? GetPString(IDS_TOTARGETTEXT) : 809 810 NullStr); 810 811 812 813 814 815 811 AddNote(message); 812 if (fVerify && (driveflags[toupper(*wk->li->targetpath) - 'A'] & DRIVE_WRITEVERIFYOFF) | 813 (driveflags[toupper(*wk->li->list[x]) - 'A'] & DRIVE_WRITEVERIFYOFF)) { 814 DosSetVerify(FALSE); 815 fResetVerify = TRUE; 816 } 816 817 if (plen) { 817 818 /* make directory/ies, if required */ … … 830 831 if (fRealIdle) 831 832 priority_idle(); 832 833 834 835 836 833 rc = docopyf(type, wk->li->list[x], "%s", newname); 834 if (fResetVerify) { 835 DosSetVerify(fVerify); 836 fResetVerify = FALSE; 837 } 837 838 priority_normal(); 838 839 if (rc) { … … 923 924 &files, &numfiles, &numalloc)) 924 925 Broadcast(hab2, 925 926 wk->hwndCnr, 926 927 UM_UPDATERECORD, 927 928 MPFROMP(wk->li->list[x]), MPVOID); 928 929 if ((driveflags[*wk->li->targetpath - 'A'] & DRIVE_RSCANNED) && 929 930 AddToList(newname, &files, &numfiles, &numalloc)) 930 931 Broadcast(hab2, 931 932 932 wk->hwndCnr, 933 UM_UPDATERECORD, MPFROMP(newname), MPVOID); 933 934 } 934 935 } … … 938 939 case IDM_COMPARE: 939 940 if ((!IsFile(wk->li->targetpath) || 940 941 IsRoot(wk->li->targetpath)) && 941 942 (!IsFile(wk->li->list[x]) || IsRoot(wk->li->list[x]))) { 942 943 if (!*dircompare && WinIsWindow(hab2, wk->hwndCnr)) … … 1031 1032 Abort: 1032 1033 1033 1034 1034 if (files) { 1035 if (driveflags[*wk->li->targetpath - 'A'] & DRIVE_RSCANNED) 1035 1036 Broadcast(hab2, 1036 1037 1038 1037 wk->hwndCnr, 1038 UM_UPDATERECORDLIST, MPFROMP(files), MPVOID); 1039 // DbgMsg(pszSrcFile, __LINE__, "UM_UPDATERECORD %s", *files); 1039 1040 FreeList(files); 1040 1041 } … … 1102 1103 Broadcast(hab2, 1103 1104 wk->hwndCnr, 1104 1105 UM_UPDATERECORDLIST, MPFROMP(wk->li->list), MPVOID); 1105 1106 break; 1106 1107 … … 1225 1226 Broadcast(hab2, 1226 1227 wk->hwndCnr, 1227 1228 UM_UPDATERECORDLIST, MPFROMP(wk->li->list), MPVOID); 1228 1229 } 1229 1230 break; … … 1245 1246 Broadcast(hab2, 1246 1247 wk->hwndCnr, 1247 1248 UM_UPDATERECORD, MPFROMP(wk->li->targetpath), MPVOID); 1248 1249 } 1249 1250 break; … … 1514 1515 Broadcast(hab2, 1515 1516 wk->hwndCnr, 1516 1517 UM_UPDATERECORDLIST, MPFROMP(wk->li->list), MPVOID); 1517 1518 } 1518 1519 break; … … 1529 1530 HOBJECT hObjectdest, hObjectofObject; 1530 1531 BYTE G_abSupportedDrives[24] = {0}; 1531 1532 ULONG cbSupportedDrives = sizeof(G_abSupportedDrives); 1532 1533 1533 1534 for (x = 0; wk->li->list[x]; x++) { … … 1624 1625 if (!wk->li->list || !wk->li->list[0]) 1625 1626 break; 1626 1627 1628 1627 } 1628 if (fVerify && driveflags[toupper(*wk->li->list[0]) - 'A'] & DRIVE_WRITEVERIFYOFF) 1629 DosSetVerify(FALSE); 1629 1630 DosRequestMutexSem(hmtxFM2Delete, SEM_INDEFINITE_WAIT); // Prevent race 12-3-08 GKY 1630 1631 for (x = 0; wk->li->list[x]; x++) { … … 1647 1648 DosDeleteDir(wk->li->list[x]); 1648 1649 } 1649 1650 else { 1650 1651 1651 1652 DosError(FERR_DISABLEHARDERR); … … 1666 1667 error = WinMoveObject(hObjectofObject, hObjectdest, 0); 1667 1668 } 1668 1669 1670 } 1671 } 1672 1673 1674 } 1675 1676 1669 else { 1670 error = DosDelete(wk->li->list[x]); 1671 } 1672 } 1673 else { 1674 error = DosForceDelete(wk->li->list[x]); ; 1675 } 1676 if (error) { 1677 DosError(FERR_DISABLEHARDERR); 1677 1678 make_deleteable(wk->li->list[x]); 1678 1679 if (wk->li->type == IDM_DELETE){ … … 1692 1693 error = WinMoveObject(hObjectofObject, hObjectdest, 0); 1693 1694 } 1694 1695 1695 else { 1696 error = DosDelete(wk->li->list[x]); 1696 1697 } 1697 1698 } 1698 1699 1699 else { 1700 error = DosForceDelete(wk->li->list[x]); 1700 1701 } 1701 1702 } … … 1714 1715 GetPString(IDS_DELETEFAILED2TEXT), 1715 1716 wk->li->list[x]) == MBID_CANCEL) { 1716 1717 1718 1717 DosSetVerify(fVerify); 1718 break; 1719 } 1719 1720 } 1720 1721 else { … … 1734 1735 } 1735 1736 } // for 1736 1737 1738 1737 } 1738 if (fVerify) 1739 DosSetVerify(fVerify); 1739 1740 break; 1740 1741 } // switch … … 1742 1743 Broadcast(hab2, 1743 1744 wk->hwndCnr, 1744 1745 UM_UPDATERECORDLIST, MPFROMP(files), MPVOID); 1745 1746 FreeList(files); 1746 1747 }
Note:
See TracChangeset
for help on using the changeset viewer.