Changeset 300 for trunk/dll/arccnrs.c
- Timestamp:
- Jun 27, 2006, 2:19:12 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/arccnrs.c
r249 r300 7 7 8 8 Copyright (c) 1993-98 M. Kimes 9 Copyright (c) 2001, 200 5Steven H. Levine9 Copyright (c) 2001, 2006 Steven H. Levine 10 10 11 11 11 Jun 02 SHL Ensure archive name not garbage … … 20 20 22 Jun 05 SHL ArcSort: correct typo in last sort fix 21 21 13 Aug 05 SHL FillArcCnr: optimize 22 08 Dec 05 SHL FillArcCnr: allow list start and end markers to be empty (i.e. tar) 23 08 Dec 05 SHL ArcCnrWndProc: suppress IDM_EXTRACT if no simple extract (i.e. tar) 24 30 Dec 05 SHL ArcCnrWndProc: correct date/time column display setup 25 29 May 06 SHL Comments 22 26 23 27 ***********************************************************************/ … … 287 291 288 292 static INT FillArcCnr (HWND hwndCnr,CHAR *arcname,ARC_TYPE **arcinfo, 289 ULONGLONG *pullTotalBytes)293 ULONGLONG *pullTotalBytes) 290 294 { 291 292 295 FILE *fp; 293 296 HFILE oldstdout; … … 295 298 CHAR s[CCHMAXPATH * 2],lonename[CCHMAXPATH + 2], 296 299 *nsize,*osize,*fdate,*fname,*p,*pp,arctemp[33]; 297 BOOL gotstart = FALSE,gotend = FALSE,wasquote,nomove = FALSE; 300 BOOL gotstart; 301 BOOL gotend; 302 BOOL wasquote; 303 BOOL nomove = FALSE; // fixme to be gone? 298 304 INT highest = 0,x,counter = 0,numarcfiles = 0; 299 305 PARCITEM lastpai; … … 304 310 if(!arcname || !arcinfo) 305 311 return 0; 312 306 313 info = *arcinfo; 307 314 if(!info) … … 314 321 break; 315 322 } 323 316 324 ReTry: 317 325 … … 348 356 if(info->fnpos == -1) 349 357 highest = 32767; 358 350 359 DosError(FERR_DISABLEHARDERR); 351 360 DosForceDelete(arctemp); 352 361 DosError(FERR_DISABLEHARDERR); 362 353 363 strcpy(s,info->list); 354 364 p = strchr(s,' '); … … 408 418 } 409 419 } 420 410 421 DosError(FERR_DISABLEHARDERR); 411 422 fp = _fsopen(arctemp,"r",SH_DENYWR); 423 412 424 if(fp) { 425 gotstart = !info->startlist || !*info->startlist; // If list has no start marker 426 413 427 while(!feof(fp) && !gotend) { 414 428 if(!fgets(s,CCHMAXPATH * 2,fp)) … … 417 431 stripcr(s); 418 432 if(!gotstart) { 419 if (!strcmp(s,info->startlist))420 gotstart = TRUE;433 if (!strcmp(s,info->startlist)) 434 gotstart = TRUE; 421 435 } 422 436 else if(info->endlist && 423 437 !strcmp(s,info->endlist)) 424 438 gotend = TRUE; 425 else { /* add to container */ 439 else { 440 /* add to container */ 426 441 fname = NULL; 427 442 bstrip(s); … … 596 611 } 597 612 } 598 } 613 } // while !eof 614 599 615 fclose(fp); 600 if (!numarcfiles || !gotstart || (!gotend && info->endlist)) 616 617 if (!numarcfiles || !gotstart || (!gotend && info->endlist && *info->endlist)) 601 618 { 602 619 ARCDUMP ad; … … 646 663 info->prev = NULL; 647 664 arcsighead = info; 648 rewrite_archiverbb2(NULL); 649 } 650 } 665 rewrite_archiverbb2(NULL); // Rewrite with warning 666 } 667 } // if opened 651 668 DosError(FERR_DISABLEHARDERR); 652 669 DosForceDelete(arctemp); … … 1035 1052 1036 1053 case UM_VIEWSMENU: 1054 // fixme to disble menu items as needed 1037 1055 return MRFROMLONG(CheckMenu(&ArcCnrMenu,ARCCNR_POPUP)); 1038 1056 1039 1057 case UM_FILESMENU: 1058 // fixme to disble menu items as needed 1040 1059 return MRFROMLONG(CheckMenu(&ArcMenu,ARC_POPUP)); 1041 1060 … … 1868 1887 for(x = 0;li->list[x];x++) { 1869 1888 if(IsFile(li->list[x]) == 1) { 1870 info = NULL; 1871 if(WinDlgBox(HWND_DESKTOP,HWND_DESKTOP, 1872 SBoxDlgProc,FM3ModHandle,ASEL_FRAME, 1873 (PVOID)&info) && info) 1889 info = NULL; // Do not hide dups - fixme to know why? 1890 if (WinDlgBox(HWND_DESKTOP,HWND_DESKTOP, 1891 SBoxDlgProc,FM3ModHandle,ASEL_FRAME, 1892 (PVOID)&info) && 1893 info) 1894 { 1874 1895 StartArcCnr(HWND_DESKTOP, 1875 1896 HWND_DESKTOP, … … 1877 1898 4, 1878 1899 info); 1900 } 1879 1901 } 1880 1902 } … … 2169 2191 if(dcd && 2170 2192 dcd->info) { 2171 if(dcd->info->fdpos == -1 || 2172 !dcd->info->datetype) 2193 if(dcd->info->fdpos == -1 || !dcd->info->datetype) 2173 2194 dcd->sortFlags &= (~SORT_LWDATE); 2174 2195 if(dcd->info->nsizepos == -1) … … 2178 2199 AdjustCnrColVis(hwnd, 2179 2200 GetPString(IDS_OLDSIZECOLTEXT), 2180 (dcd->info->osizepos != -1),2201 dcd->info->osizepos != -1, 2181 2202 FALSE); 2182 2203 AdjustCnrColVis(hwnd, 2183 2204 GetPString(IDS_NEWSIZECOLTEXT), 2184 (dcd->info->nsizepos != -1),2205 dcd->info->nsizepos != -1, 2185 2206 FALSE); 2207 // Display unsullied date/time string if type 0 2186 2208 AdjustCnrColVis(hwnd, 2187 2209 GetPString(IDS_DATETIMECOLTEXT), 2188 (dcd->info->fdpos != -1 && !dcd->info->datetype),2210 dcd->info->fdpos != -1 && !dcd->info->datetype, 2189 2211 FALSE); 2212 // Display parsed date/time columns if type specified 2190 2213 AdjustCnrColVis(hwnd, 2191 2214 GetPString(IDS_TIMECOLTEXT), 2192 (dcd->info->fdpos != -1 || dcd->info->datetype),2215 dcd->info->fdpos != -1 && dcd->info->datetype, 2193 2216 FALSE); 2194 2217 AdjustCnrColVis(hwnd, 2195 2218 GetPString(IDS_DATECOLTEXT), 2196 (dcd->info->fdpos != -1 || dcd->info->datetype),2219 dcd->info->fdpos != -1 && dcd->info->datetype, 2197 2220 FALSE); 2198 2221 WinSendMsg(hwnd, … … 2592 2615 WinEnableMenuItem((HWND)mp2, 2593 2616 IDM_DELETE, 2594 (dcd->info->delete != NULL));2617 dcd->info->delete != NULL); 2595 2618 WinEnableMenuItem((HWND)mp2, 2596 2619 IDM_TEST, 2597 (dcd->info->test != NULL)); 2620 dcd->info->test != NULL); 2621 WinEnableMenuItem((HWND)mp2, 2622 IDM_EXTRACT, 2623 dcd->info->extract != NULL); 2598 2624 WinEnableMenuItem((HWND)mp2, 2599 2625 IDM_EXTRACTWDIRS, 2600 (dcd->info->exwdirs != NULL));2626 dcd->info->exwdirs != NULL); 2601 2627 WinEnableMenuItem((HWND)mp2, 2602 2628 IDM_ARCEXTRACTWDIRS, 2603 (dcd->info->exwdirs != NULL));2629 dcd->info->exwdirs != NULL); 2604 2630 WinEnableMenuItem((HWND)mp2, 2605 2631 IDM_ARCEXTRACTWDIRSEXIT, 2606 (dcd->info->exwdirs != NULL));2632 dcd->info->exwdirs != NULL); 2607 2633 } 2608 2634 break;
Note:
See TracChangeset
for help on using the changeset viewer.