MultiArc - archiver plugin

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

Post Reply
quantum
Junior Member
Junior Member
Posts: 49
Joined: 2004-02-29, 01:42 UTC

Post by *quantum »

@MVV: If you are willing to post the source for your Multiarc changes, please do so, or please point out a link if it's already online somewhere. Thanks.
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Well, you can get current sources here. BTW, why do you need them?
quantum
Junior Member
Junior Member
Posts: 49
Joined: 2004-02-29, 01:42 UTC

Post by *quantum »

Thanks, I'm getting crashes on paths I think longer than MAX_PATH (and BatchUnpack=1) and I wanted to see if there's a buffer size I can increase.
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Well, adding long path support is a quite difficult task, especially for non-Unicode program. AFAIK, non-Unicode Windows API simply doesn't allow using long paths, but even Unicode API requires extra prefix...

But of cource plugin shouldn't crash on long paths. If you could provide an example of such archive, I would take a look on it myself.
quantum
Junior Member
Junior Member
Posts: 49
Joined: 2004-02-29, 01:42 UTC

Post by *quantum »

Indeed I am using the unicode API with \\?\ prefix in all cases to ensure long path support. If I can confirm the plugin really crashes because of long paths or any reproducable example, I'll post an example.
User avatar
Peter
Power Member
Power Member
Posts: 2064
Joined: 2003-11-13, 13:40 UTC
Location: Schweiz

Post by *Peter »

CAB-files with indexFile.dat

I have (MSCF-) Cab Files and can open them. But all the files are only named with numbers, and the file infexFile.dat conatins the meaning of the numbers.

Files inside CAB:

Code: Select all

1065832118
1075857603
1097061951
1102126380
Content of indexFile.dat

Code: Select all

1065832118                            Support\2.PNG
1075857603                            Support\1.atr
1097061951                            Support\3.png
1102126380                            Support\test.doc
Is there a way to replace the numbers with the correct names of the files?
TC 10.xx / #266191
Win 10 x64
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

That's not a MSCF file but a InstallShield CAB file.
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

It may be MSCF too, but within some kind of installer that doesn't store names in archive... E.g. MSI installations also use MSCF, but use GUIDs instead of file names.
User avatar
deus-ex
Power Member
Power Member
Posts: 969
Joined: 2003-02-10, 17:45 UTC

Post by *deus-ex »

True, but GUIDs for filenames in MSCF archives are comprised of 32 digits and look like this:

Code: Select all

_0124567890123456789012345678912
Also, a accompanying .dat file that holds the real filenames is typical for InstallShield CAB files, you don't find these with MSCF CAB archives.
The first four bytes in the header of an InstallShield CAB archive read "ISc(", for a Microsoft CAB file its "MSCF".
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Re: MultiArc - archiver plugin

Post by *Luke_Filewalker »

@MVV

Thanks for the further development of MultiArc. :D We (Wing Commander Saga German) have been using Total Commander + MA MVV for years to integrate our own VP Packer "VPT". We also have instructions in English and German for installing MA MVV and for importing our VP MA addon.

Is there an official place for MA addons? Or is this topic here the right place?
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48021
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: MultiArc - archiver plugin

Post by *ghisler(Author) »

There is just an official place for Multiarc addon downloads:
http://totalcmd.net/directory/multiarc.html

But for the forum, the MultiArc thread is the best place.
Author of Total Commander
https://www.ghisler.com
User avatar
Luke_Filewalker
Junior Member
Junior Member
Posts: 47
Joined: 2003-11-05, 10:30 UTC

Re: MultiArc - archiver plugin

Post by *Luke_Filewalker »

@ghisler(Author)

Okay, thanks Christian.
Luke 'GTH' Filewalker
may the backup be with you - always

# 14630 Single user licence
Hurdet
Power Member
Power Member
Posts: 620
Joined: 2003-05-10, 18:02 UTC

Re: MultiArc - archiver plugin

Post by *Hurdet »

Periodically, the% L variable is not populated and I have to restart TC to fix it.
Do it is a bug?
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Re: MultiArc - archiver plugin

Post by *MVV »

Looks weird. How easy can you reproduce it? What TC and MultiArc versions do you use? Which addon do you use? And what kind of action you use - create new archive, modify existing?
User avatar
cieply
Junior Member
Junior Member
Posts: 4
Joined: 2016-02-17, 20:53 UTC

configuration problem

Post by *cieply »

Hi, I was trying to adapt MA (MultiArc MVV Build 1.4.3.160) to handle lzip and xz and pigz possibly any standard *nix compressor "natively", not through third party plugins, but failed. My config successfully runs `$ lzip -l archive.lz` and gets listing provided by program ( I've checked it in debug log) but I still don't see file after entering archive [Enter/Ctrl+PgDn].
I tried to follow documentation and model on addons but still to no avail.

First in wincmd.ini:

Code: Select all

[PackerPlugins]
lz=187,%COMMANDER_PATH%\Plugins\wcx\MultiArc\MultiArc.wcx
xz=187,%COMMANDER_PATH%\Plugins\wcx\MultiArc\MultiArc.wcx
My lzip section of MultiArc.ini:

Code: Select all

; (p)lzip, https://savannah.nongnu.org/projects/lzip/
[LZIP]
Description="lzip/plzip compressor"
Extension=lz
Archiver=c:\progs\bin\plzip.exe ; plzip is parallel implementation of lzip; same thing
ID=4c 5a 49 50 01
;      ;   uncompressed      compressed   saved  name
Start="^   uncompressed      compressed   saved  name"
;      211957760        49774169  76.52%  silesia.tar.lz
;Format0="      211957760        49774169  76.52%  silesia.tar.lz"
; Format0="   zzzzzzzzzzzz    pppppppppppp  *       nnnn++" ; I actually use nnnnn... but made it short for clarity here; also tried tu use `*` but with same effect
Format0="   zzzzzzzzzzzz    pppppppppppp          nnnn++"
BatchUnpack=0
UnixPath=1
List=%P -l %AQA
Add=%P -k -9 -o %LQA %AQA
;Delete=%P d %AQA @%LQA
Extract=%P -dk -o @%LQA %AQA
;ExtractWithPath=%P x AQA @%LQA
Debug=1
Listing given by `$ lzip -l archive.lz` looks like this:

Code: Select all

   uncompressed      compressed   saved  name
      211957760        49774169  76.52%  silesia.tar.lz
debug log (MultiArc.lzip.log):

Code: Select all

>Command executed:c:\progs\bin\plzip.exe -l C:\tmp\downloads\_\silesia.tar.lz
Current directory : C:\tmp\downloads\_
> === Archiver output begin ===

   uncompressed      compressed   saved  name
      211957760        49774169  76.52%  C:\tmp\downloads\_\silesia.tar.lz

> === Archiver output end ===
> Errorlevel returned: 0 


Analogously witx xz

Code: Select all

[XZ]
Description="xz compressor"
Extension=xz
Archiver=c:\progs\bin\xz.exe
ID=fd 37 7a 58 5a 00
;      ;Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
Start="^Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
;       ;"    1       1     65,3 KiB    730,0 KiB  0,090  CRC64   unifdef-2.12.tar.xz"
;Format0="    *       * zzzzzzzzzzzz pppppppppppp  *      *       nnnn++"
 Format0="              zzzzzzzzzzzz pppppppppppp                 nnnn++"
BatchUnpack=0
UnixPath=1
List=%P -l %AQA
Add=%P -k -8 -o %LQA %AQA
;Delete=%P d %AQA @%LQA
Extract=%P -dk -o @%LQA %AQA
;ExtractWithPath=%P x AQA @%LQA
Debug=1

Listing given by `$ xz -l archive.xz` looks like this:

Code: Select all

Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
    1       1     65,3 KiB    730,0 KiB  0,090  CRC64   unifdef-2.12.tar.xz

Code: Select all

>Command executed:c:\progs\bin\xz.exe -l C:\tmp\downloads\_\unifdef-2.12.tar.xz
Current directory : C:\tmp\downloads\_
> === Archiver output begin ===

Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
    1       1     65,3 KiB    730,0 KiB  0,090  CRC64   C:\tmp\downloads\_\unifdef-2.12.tar.xz

> === Archiver output end ===
> Errorlevel returned: 0 
<<<< END:24/4/2020 23:23:21

Are you able to tell me where am I doing wrong?
Post Reply