Changeset 1689


Ignore:
Timestamp:
Jul 31, 2013, 1:22:48 AM (12 years ago)
Author:
Gregg Young
Message:

Changes to get 7z archives to work with AV. Includes an ugly hack to compensate for the fact that the compressed size is missing from some files in some archives. This results in the filename being put in the nsize variable which then must be passed to fname. Fortunately it displays compressed size as 0 since it can't deal with the non numeric text string. A file name that is all numeric will show odd results. Ticket 492

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/archiver.tmp

    r1657 r1689  
    1471477,1,0,0
    148148;
    149 ;
    150 ; Entry #3 - PKZIP 2.50 named PKZip (true OS/2 executable).
     149; Entry #3 (7z)
     150;
     1517z
     1527z
     1530
     1547za.exe l
     1557za.exe e
     1567za.exe x
     1577za.exe t
     1587za.exe a
     159
     160
     161
     162
     1637za.exe d
     1647z
     165------------------- ----- ------------ ------------  ------------------------
     166------------------- ----- ------------ ------------  ------------------------
     1673
     1684
     1690,4
     1701
     1715,1,0,0
     172;
     173;
     174; Entry #4 - PKZIP 2.50 named PKZip (true OS/2 executable).
    151175;
    152176PKZip 2.50
     
    1721968,1,0,0
    173197;
    174 ; Entry #4 - InfoZip unzipsfx self-extractors.
     198; Entry #5 - InfoZip unzipsfx self-extractors.
    175199;
    176200unzipsfx
     
    197221;
    198222;
    199 ; Entry #5 - PKWare PKZIP self-extractors type 1.
     223; Entry #6 - PKWare PKZIP self-extractors type 1.
    200224;
    201225PK(Un)Zip SE #1
     
    2212458,0,0,0
    222246;
    223 ; Entry #6 - is for PKWare PKZIP self-extractors type 2.
     247; Entry #7 - is for PKWare PKZIP self-extractors type 2.
    224248;
    225249PK(Un)Zip SE #2
     
    246270;
    247271;
    248 ; Entry #7 - PKWare PKZIP self-extractors type 3.
     272; Entry #8 - PKWare PKZIP self-extractors type 3.
    249273;
    250274PK(Un)Zip SE #2
     
    271295;
    272296;
    273 ; Entry #8 - TAR 1.15.1 from Gregg Young
     297; Entry #9 - TAR 1.15.1 from Gregg Young
    274298;
    275299TAR 1.15.1 (or higher)
     
    2953195,1,0,0
    296320;
    297 ; Entry #9 - TAR 1.1.0.
     321; Entry #10 - TAR 1.1.0.
    298322;
    299323TAR 1.10
     
    320344;
    321345;
    322 ; Entry #10 (tar.gz)
     346; Entry #11 (tar.gz)
    323347;
    324348TAR.GZ (Req. TAR 1.15+ & GZIP)
     
    3443687,1,0,0
    345369;
    346 ; Entry #11 (tar.bz2)
     370; Entry #12 (tar.bz2)
    347371;
    348372TAR.BZ2 (Req. TAR 1.15+ & BZIP2)
     
    3683925,1,0,0
    369393;
    370 ; Entry #12 - GZIP (GZ).
     394; Entry #13 - GZIP (GZ).
    371395;
    372396GZIP (GZ) (req. GZIP & TAR 1.15+)
     
    3924165,1,0,0
    393417;
    394 ; Entry #13 - GZIP (Z).
     418; Entry #14 - GZIP (Z).
    395419;
    396420GZIP (Z)
     
    4164408,0,0,0
    417441;
    418 ; Entry #14 - Unarj 2.30 demo version.
     442; Entry #15 - Unarj 2.30 demo version.
    419443; Don't use Unarj 2.41; it's broken.
    420444;
     
    4414650,0,0,0
    442466;
    443 ; Entry #15 - Arj 2.00 (DOS).
     467; Entry #16 - Arj 2.00 (DOS).
    444468; Note that other programs that use this control file may not be able to
    445469; handle calling a DOS archiver correctly!  FM/2 is the only one that I
     
    4694930,0,0,0
    470494;
    471 ; Entry #16 (RAR v.3.5)
     495; Entry #17 (RAR v.3.5)
    472496;
    473497RAR v.3.5
     
    4935170,0,0,1
    494518;
    495 ; Entry #17 - RAR/2 v2, provided by Eugene Roshal.
     519; Entry #18 - RAR/2 v2, provided by Eugene Roshal.
    496520;
    497521RAR/2 v2
     
    5175410,0,0,1
    518542;
    519 ; Entry #18 - RAR/2 v.1.53beta OS/2 SFX.
     543; Entry #19 - RAR/2 v.1.53beta OS/2 SFX.
    520544;
    521545RAR/2 v.1.53beta OS/2 SFX
     
    5415650,0,0,1
    542566;
    543 ; Entry #19 - RAR v.1.53 DOS SFX.
     567; Entry #20 - RAR v.1.53 DOS SFX.
    544568;
    545569RAR v.1.53 DOS SFX
     
    5655890,0,0,1
    566590;
    567 ; Entry #20 - RAR v.2.00 SFX.
     591; Entry #21 - RAR v.2.00 SFX.
    568592;
    569593RAR v.2.00 SFX
     
    590614;
    591615;
    592 ; Entry #21 - LHarc 2.22.
     616; Entry #22 - LHarc 2.22.
    593617; Supposedly fixes bugs in earlier versions.
    594618; Actually seems to have done so.  Good work, Peter.
     
    6166402,1,0,0
    617641;
    618 ; Entry #22 - LHarc 2.22 using LH32 executable.
     642; Entry #23 - LHarc 2.22 using LH32 executable.
    619643;
    620644LHarc-32 2.22
     
    6406642,1,0,0
    641665;
    642 ; Entry #23 - LHarc 2.22 self-extractors..
     666; Entry #24 - LHarc 2.22 self-extractors..
    643667;
    644668LHarc 2.22 SE
     
    6646882,1,0,0
    665689;
    666 ; Entry #24 - LHA 2.12 (DOS) self-extractors.
     690; Entry #25 - LHA 2.12 (DOS) self-extractors.
    667691; LH 2.22 seems to recognize them
    668692;
     
    6897132,1,0,0
    690714;
    691 ; Entry #25 - LHA 2.12 (DOS) self-extractors.
     715; Entry #26 - LHA 2.12 (DOS) self-extractors.
    692716; LH 2.22 seems to recognize them
    693717;
     
    7147382,1,0,0
    715739;
    716 ; Entry #26 - LHA 2.13L (DOS) self-extractors.
     740; Entry #27 - LHA 2.13L (DOS) self-extractors.
    717741; LH 2.22 seems to recognize them
    718742;
     
    7397632,1,0,0
    740764;
    741 ; Entry #27 - LH2 2.11.
     765; Entry #28 - LH2 2.11.
    742766; NOTE:  sometimes will put a file into an archive more than once, necessitating
    743767; deleting both.  EAs not handled well, but at least they're handled.
     
    7657892,1,0,0
    766790;
    767 ; Entry #28 - ZIP 1.9/UNZIP 5.0 (available in 32-bit versions).
     791; Entry #29 - ZIP 1.9/UNZIP 5.0 (available in 32-bit versions).
    768792;ZIP/UNZIP should work with PKZIP 2.04 files.  Saves EAs well.  Won't
    769793;extract a file stored with path without the path (actually, this seems
     
    8008247,1,0,0
    801825;
    802 ; Entry #29 - ZIP 1.9/UNZIP 5.0 using *32 executables.
     826; Entry #30 - ZIP 1.9/UNZIP 5.0 using *32 executables.
    803827;
    804828Zip/UnZip-32 1.9/5.0
     
    8248487,1,0,0
    825849;
    826 ; Entry #30 - ZIP 1.9/UNZIP 5.0, using the -l listing format.
     850; Entry #31 - ZIP 1.9/UNZIP 5.0, using the -l listing format.
    827851; (the -v long format can sometimes result in the old length field
    828852; being crammed together with the Method field, resulting in an
     
    8528763,1,0,0
    853877;
    854 ; Entry #31 - Zoo 2.1.
     878; Entry #32 - Zoo 2.1.
    855879; NOTE:  Bug in Zoo 2.1 seems to cause files stored with paths to
    856880; be extracted with paths even when you don't ask it to do so...
     
    880904;----------------- Older, less used archivers --------------
    881905;
    882 ; Entry #32 - ARC 5.12mpl.
     906; Entry #33 - ARC 5.12mpl.
    883907;
    884908Arc 5.12mpl
     
    9049280,0,0,0
    905929;
    906 ; Entry #33 - ARC2 (6.0).
     930; Entry #34 - ARC2 (6.0).
    907931; Note that I don't actually have a copy of this...
    908932;
     
    9299530,0,0,0
    930954;
    931 ; Entry #34 - ARC2 (6.0) using ARC2 executable.
     955; Entry #35 - ARC2 (6.0) using ARC2 executable.
    932956;
    933957Arc 6.0
     
    9539770,0,0,0
    954978;
    955 ; Entry #35 (CABExtract 1.0)
     979; Entry #36 (CABExtract 1.0)
    956980;
    957981CABExtract 1.0
     
    97710015,1,0,0
    9781002;
    979 ; Entry #36 (Untgz Ver 0.95)
     1003; Entry #37 (Untgz Ver 0.95)
    9801004; Supplied by Gregg Young
    9811005;
  • trunk/dll/arccnrs.c

    r1625 r1689  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2001, 2010 Steven H. Levine
     9  Copyright (c) 2001, 2013 Steven H. Levine
    1010
    1111  11 Jun 02 SHL Ensure archive name not garbage
     
    8181                aren't user settable; realappname should be used for setting applicable to
    8282                one or more miniapp but not to FM/2
    83   17 JAN 10 GKY Changes to get working with Watcom 1.9 Beta (1/16/10). Mostly cast CHAR CONSTANT * as CHAR *.
     83  17 Jan 10 GKY Changes to get working with Watcom 1.9 Beta (1/16/10). Mostly cast CHAR CONSTANT * as CHAR *.
    8484  15 Apr 10 JBS Ticket 422: Stop hang when open archive gets deleted or moved
    8585  23 Oct 10 GKY Add ForwardslashToBackslash function to streamline code
     
    8787                by temp file creation failures.
    8888  13 Aug 11 GKY Change to Doxygen comment format
     89  30 Jul 13 GKY Changes to allow 7z archiver to work with AV.
    8990
    9091***********************************************************************/
     
    727728          p = s;
    728729          for (fieldnum = 0; fieldnum <= highest; fieldnum++) {
    729             pp = p;
     730            pp = p;
    730731            while (*pp && (*pp == ' ' || *pp == '\t'))  // skip leading
    731732              pp++;
    732             if (!*pp)
    733               break;
     733            if (!*pp) {
     734              if (fieldnum == info->fnpos && (!strcmp(strupr(info->ext), "7Z") ||
     735                                             !strcmp(strupr(info->signature), "7Z")))
     736                fname = nsize;// GKY 7-30-13 Work around for missing nsize field for some members of archive
     737              break;
     738            }
    734739            wasquote = FALSE;
    735             p = pp;
     740            p = pp;
    736741            while (*p && (wasquote ||
    737742                          ((fieldnum != info->fnpos || !info->nameislast) ?
     
    749754                }
    750755              }
    751               else if (*p)
     756              else if (*p)
    752757                p++;
    753             }
     758            }
    754759            if (*p) {
    755760              *p = 0;
    756761              p++;
    757             }
     762            }
    758763            if (fieldnum == info->nsizepos)
    759764              nsize = pp;
     
    782787              }
    783788            }
    784             else if (fieldnum == info->fnpos) {
     789            else if (fieldnum == info->fnpos) {
    785790              fname = pp;
    786791              if (pp && *pp == '*' && !*(pp + 1))       // workaround for LH.EXE
     
    793798              break;
    794799            }
    795           }
     800          } // for fldnum
    796801          if (info->nameisnext) {
    797802            if (!xfgets_bstripcr
Note: See TracChangeset for help on using the changeset viewer.