Changeset 769 for trunk/dll/comp.c
- Timestamp:
- Aug 6, 2007, 4:24:09 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/comp.c
r765 r769 357 357 HWND hwndCnrS, hwndCnrD; 358 358 PCNRITEM pci, pciD, pciNextS, pciNextD; 359 CHAR newname[CCHMAXPATH], dirname[CCHMAXPATH], *p; 360 PSZ pszNewName = newname; 359 CHAR szNewName[CCHMAXPATH], szDirName[CCHMAXPATH], *p; 361 360 APIRET rc; 362 361 … … 459 458 case IDM_MOVE: 460 459 if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR)) 461 462 BldFullPathName(pszNewName, cmp->leftdir, pci->pszDisplayName);463 //sprintf( newname, "%s%s%s",460 // 02 Aug 07 SHL fixme to replace this kind of stuff with _makepath or equivalent 461 BldFullPathName(szNewName, cmp->leftdir, pci->pszDisplayName); 462 //sprintf(szNewName, "%s%s%s", 464 463 // cmp->leftdir, 465 464 // cmp->leftdir[strlen(cmp->leftdir) - 1] == '\\' ? 466 // 467 // 468 469 BldFullPathName(pszNewName, cmp->rightdir, pci->pszDisplayName);470 //sprintf( newname, "%s%s%s",465 // NullStr : "\\", 466 // pci->pszDisplayName); 467 else 468 BldFullPathName(szNewName, cmp->rightdir, pci->pszDisplayName); 469 //sprintf(szNewName, "%s%s%s", 471 470 // cmp->rightdir, 472 471 // cmp->rightdir[strlen(cmp->rightdir) - 1] == '\\' ? 473 // 472 // NullStr : "\\", 474 473 // pci->pszDisplayName); 475 474 // Make directory if required 476 strcpy( dirname, newname);477 p = strrchr( dirname, '\\');475 strcpy(szDirName, szNewName); 476 p = strrchr(szDirName, '\\'); 478 477 if (p) { 479 if (p > dirname + 2)478 if (p > szDirName + 2) 480 479 p++; 481 480 *p = 0; 482 if (IsFile( dirname) == -1)483 MassMkdir(hwndMain, dirname);481 if (IsFile(szDirName) == -1) 482 MassMkdir(hwndMain, szDirName); 484 483 } 485 rc = docopyf(MOVE, pci->pszFileName, "%s", newname);486 if (!rc && stricmp(pci->pszFileName, newname)) {484 rc = docopyf(MOVE, pci->pszFileName, "%s", szNewName); 485 if (!rc && stricmp(pci->pszFileName, szNewName)) { 487 486 WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pci), 488 487 MPFROM2SHORT(FALSE, CRA_SELECTED)); … … 491 490 MPFROM2SHORT(FALSE, CRA_SELECTED)); 492 491 FreeCnrItemData(pciD); 493 pciD->pszFileName = xstrdup( newname, pszSrcFile, __LINE__);492 pciD->pszFileName = xstrdup(szNewName, pszSrcFile, __LINE__); 494 493 if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR)) { 495 494 pciD->pszDisplayName = pciD->pszFileName + strlen(cmp->leftdir); … … 502 501 pciD->pszDisplayName++; 503 502 } 504 // 02 Aug 07 SHL fixme to know Longname transfer is correct?503 // 02 Aug 07 SHL fixme to know if LongName transfer is correct? 505 504 pciD->pszLongName = pci->pszLongName; 506 505 if (pciD->pszSubject != NullStr) { … … 510 509 pciD->attrFile = pci->attrFile; 511 510 pciD->pszDispAttr = pci->pszDispAttr; 512 pciD->flags = CNRITEM_EXISTS; // 04 Aug 07 SHL511 pciD->flags = 0; // Just on one side 513 512 pciD->date = pci->date; 514 513 pciD->time = pci->time; … … 544 543 __LINE__, 545 544 GetPString(IDS_COMPMOVEFAILEDTEXT), 546 pci->pszFileName, newname);545 pci->pszFileName, szNewName); 547 546 if (rc == MBID_CANCEL) // Cause loop to break 548 547 pciNextS = NULL; … … 551 550 552 551 case IDM_COPY: 553 554 BldFullPathName(pszNewName, cmp->leftdir, pci->pszDisplayName);555 //sprintf( newname, "%s%s%s",552 if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR)) 553 BldFullPathName(szNewName, cmp->leftdir, pci->pszDisplayName); 554 //sprintf(szNewName, "%s%s%s", 556 555 // cmp->leftdir, 557 556 // cmp->leftdir[strlen(cmp->leftdir) - 1] == '\\' ? 558 // 557 // NullStr : "\\", 559 558 // pci->pszDisplayName); 560 561 BldFullPathName(pszNewName, cmp->rightdir, pci->pszDisplayName);562 //sprintf( newname, "%s%s%s",559 else 560 BldFullPathName(szNewName, cmp->rightdir, pci->pszDisplayName); 561 //sprintf(szNewName, "%s%s%s", 563 562 // cmp->rightdir, 564 563 // cmp->rightdir[strlen(cmp->rightdir) - 1] == '\\' ? 565 // 564 // NullStr : "\\", 566 565 // pci->pszDisplayName); 567 566 // Make directory if required 568 strcpy( dirname, newname);569 p = strrchr( dirname, '\\');567 strcpy(szDirName, szNewName); 568 p = strrchr(szDirName, '\\'); 570 569 if (p) { 571 if (p > dirname + 2)570 if (p > szDirName + 2) 572 571 p++; 573 572 *p = 0; 574 if (IsFile( dirname) == -1)575 MassMkdir(hwndMain, dirname);573 if (IsFile(szDirName) == -1) 574 MassMkdir(hwndMain, szDirName); 576 575 } 577 rc = docopyf(COPY, pci->pszFileName, "%s", newname);576 rc = docopyf(COPY, pci->pszFileName, "%s", szNewName); 578 577 if (rc) { 579 578 rc = Dos_Error(MB_ENTERCANCEL, … … 583 582 __LINE__, 584 583 GetPString(IDS_COMPCOPYFAILEDTEXT), 585 pci->pszFileName, newname);584 pci->pszFileName, szNewName); 586 585 if (rc == MBID_CANCEL) 587 586 pciNextS = NULL; // Cause loop to break … … 594 593 MPFROM2SHORT(FALSE, CRA_SELECTED)); 595 594 FreeCnrItemData(pciD); 596 pciD->pszFileName = xstrdup( newname, pszSrcFile, __LINE__);595 pciD->pszFileName = xstrdup(szNewName, pszSrcFile, __LINE__); 597 596 if (hwndCnrS == WinWindowFromID(cmp->hwnd, COMP_RIGHTDIR)) { 598 597 pciD->pszDisplayName = pciD->pszFileName + strlen(cmp->leftdir); … … 607 606 pciD->attrFile = pci->attrFile; 608 607 pciD->pszDispAttr = pci->pszDispAttr; 609 pciD->flags = CNRITEM_EXISTS; 608 pciD->flags = CNRITEM_EXISTS; // Now on both sides 610 609 pciD->date = pci->date; 611 610 pciD->time = pci->time; … … 617 616 pciD->easize = pci->easize; 618 617 619 // 02 Aug 07 SHL fixme to know why subject cleared?618 // Forget status until we regenerate it 620 619 if (pci->pszSubject != NullStr) { 621 620 xfree(pci->pszSubject); 622 621 pci->pszSubject = NullStr; 623 622 } 624 // 02 Aug 07 SHL fixme to know why - should already be set? 625 // pci->flags = CNRITEM_EXISTS; 623 pci->flags = CNRITEM_EXISTS; 626 624 627 625 WinSendMsg(hwndCnrS, CM_INVALIDATERECORD, MPFROMP(&pci), … … 817 815 HWND hwndLeft, hwndRight; 818 816 CHAR szBuf[CCHMAXPATH]; 819 PSZ pszBuf = szBuf;820 817 CNRINFO cnri; 821 822 818 823 819 if (!cmp) { … … 847 843 INT numallocl = 0; 848 844 INT numallocr = 0; 849 INT lenl;// Directory prefix length850 INT lenr;845 UINT lenl; // Directory prefix length 846 UINT lenr; 851 847 UINT recsNeeded; 852 848 PCNRITEM pcilFirst; … … 942 938 943 939 if (*cmp->rightdir) { 944 lenr = strlen(cmp->rightdir) + 945 (cmp->rightdir[strlen(cmp->rightdir) - 1] != '\\'); 940 lenr = strlen(cmp->rightdir); 941 if (cmp->rightdir[strlen(cmp->rightdir) - 1] != '\\') 942 lenr++; 946 943 while (!feof(fp)) { 947 944 if (!xfgets_bstripcr … … 1100 1097 1101 1098 if (x <= 0) { 1102 1103 BldFullPathName(pszBuf, cmp->leftdir, filesl[l]->fname);1099 // File appears on left side 1100 BldFullPathName(szBuf, cmp->leftdir, filesl[l]->fname); 1104 1101 //sprintf(szBuf, "%s%s%s", cmp->leftdir, 1105 1102 // (cmp->leftdir[strlen(cmp->leftdir) - 1] == '\\') ? 1106 1103 // NullStr : "\\", filesl[l]->fname); 1107 pcil->pszFileName = xstrdup( pszBuf, pszSrcFile, __LINE__);1104 pcil->pszFileName = xstrdup(szBuf, pszSrcFile, __LINE__); 1108 1105 pcil->pszDisplayName = pcil->pszFileName + lenl; 1109 1106 pcil->attrFile = filesl[l]->attrFile; … … 1135 1132 } 1136 1133 } 1137 pcil->flags |= CNRITEM_EXISTS;1138 1134 } // if on left 1139 1135 1140 1136 if (x >= 0) { 1141 1142 //BldFullPathName(pszBuf, cmp->rightdir, filesl[r]->fname);1143 sprintf(szBuf, "%s%s%s", cmp->rightdir,1144 (cmp->rightdir[strlen(cmp->rightdir) - 1] == '\\') ?1145 NullStr : "\\", filesr[r]->fname);1146 pcir->pszFileName = xstrdup( pszBuf, pszSrcFile, __LINE__); // 31 Jul 07 SHL1137 // File appears on right side 1138 BldFullPathName(szBuf, cmp->rightdir, filesl[r]->fname); 1139 //sprintf(szBuf, "%s%s%s", cmp->rightdir, 1140 // (cmp->rightdir[strlen(cmp->rightdir) - 1] == '\\') ? 1141 // NullStr : "\\", filesr[r]->fname); 1142 pcir->pszFileName = xstrdup(szBuf, pszSrcFile, __LINE__); // 31 Jul 07 SHL 1147 1143 pcir->pszDisplayName = pcir->pszFileName + lenr; 1148 1144 pcir->attrFile = filesr[r]->attrFile; … … 1176 1172 } 1177 1173 } 1178 pcir->flags |= CNRITEM_EXISTS;1179 1174 } // if on right 1180 1175 1181 1176 if (x == 0) { 1182 1177 // File appears on both sides 1183 pch = pszBuf; 1178 pcil->flags |= CNRITEM_EXISTS; 1179 pcir->flags |= CNRITEM_EXISTS; 1180 pch = szBuf; 1184 1181 // Subject field holds status messages 1185 1182 *pch = 0; … … 1211 1208 pcil->flags |= CNRITEM_NEWER; 1212 1209 pcir->flags |= CNRITEM_OLDER; 1213 if (pch != pszBuf) {1210 if (pch != szBuf) { 1214 1211 strcpy(pch, ", "); 1215 1212 pch += 2; … … 1233 1230 pcil->flags |= CNRITEM_OLDER; 1234 1231 pcir->flags |= CNRITEM_NEWER; 1235 if (pch != pszBuf) {1232 if (pch != szBuf) { 1236 1233 strcpy(pch, ", "); 1237 1234 pch += 2; … … 1240 1237 pch += 5; 1241 1238 } 1242 // fixme to know why not displayed - defect? 1243 pcil->pszSubject = pszBuf ? 1244 xstrdup(pszBuf, pszSrcFile, __LINE__) : 1239 pcil->pszSubject = *szBuf ? 1240 xstrdup(szBuf, pszSrcFile, __LINE__) : 1245 1241 NullStr; 1246 1242 … … 2169 2165 FM3ModHandle, WALK2_FRAME, 2170 2166 MPFROMP(&wa)) && 2171 !IsFile(wa.szCurrentPath1) && !IsFile(wa.szCurrentPath2)) { 2167 !IsFile(wa.szCurrentPath1) && 2168 !IsFile(wa.szCurrentPath2)) { 2172 2169 strcpy(cmp->leftdir, wa.szCurrentPath1); 2173 2170 strcpy(cmp->rightdir, wa.szCurrentPath2);
Note:
See TracChangeset
for help on using the changeset viewer.