v7.5 issue in archive extraction with external extractor

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
Blight
Junior Member
Junior Member
Posts: 55
Joined: 2003-03-22, 23:04 UTC

v7.5 issue in archive extraction with external extractor

Post by *Blight »

Description:
In v7.04a and previous versions of TC, you could select multiple archive files, press Alt+F9 to extract them and when the external extractor comes up, press escape to cancel TC's "wait for extraction" dialog and then TC would execute all the extractors.


New Behavior in v7.5:
In v7.5, when you press escape on the TC wait dialog, it no longer executes the external extractor for the other selected files.


Why this new behavior is bad:
There doesn't seem to be a way to select multiple archive and extract them while retaining access to the TC GUI for other operations.


Possible Solutions:
1. Restore the previous behavior (closing the TC dialog doesn't cancel other extractions).
2. Enable background (threaded) extraction using the internal archive code.
Yaron Gur
Zoom Player . Lead Developer
StatusQuo
Power Member
Power Member
Posts: 1524
Joined: 2007-01-17, 21:36 UTC
Location: Germany

Post by *StatusQuo »

Blight wrote:then TC would execute all the extractors.
Yes - all simultaneously, which could lead to hundreds of opened instances of external unpackers.

This bug was fixed in TC 7.50:
http://ghisler.ch/board/viewtopic.php?t=23039
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
User avatar
Blight
Junior Member
Junior Member
Posts: 55
Joined: 2003-03-22, 23:04 UTC

Post by *Blight »

StatusQuo:
I wasn't seeing it as a bug, and it wasn't an issue with external extractors which are capable of recognizing each instance (WinRAR for example).
Yaron Gur
Zoom Player . Lead Developer
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Re: v7.5 issue in archive extraction with external extractor

Post by *Balderstrom »

Blight wrote:Why this new behavior is bad:
There doesn't seem to be a way to select multiple archive and extract them while retaining access to the TC GUI for other operations.
Select Files.
Right Click | Keyboard Application Button
Winrar -> Extract each archive to separate folder.

OR
Define an Internal Association with winrar,
Select Files,
Press Enter | Right Click | ...

There's prolly a few other ways of accessing it, ie cm_ContextMenuInternal

The BugFix is likely not the best fix, it could of retained old behaviour whilst allowing specifically [Cancel] to abort the operation entirely.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48093
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

This behaviour is indeed intentional and not a bug.
Author of Total Commander
https://www.ghisler.com
StatusQuo
Power Member
Power Member
Posts: 1524
Joined: 2007-01-17, 21:36 UTC
Location: Germany

Post by *StatusQuo »

2Blight
it wasn't an issue with external extractors which are capable of recognizing each instance (WinRAR for example).
Hm, the linked bug created dozens of WinRAR (3.71) instances here, that rendered my system useless until killing them all. I didn't find an "only 1 instance allowed" option in WinRAR yet (hints welcome).

There are some discussions about background queuing packing/unpacking operations (search term "unpack queue"), unfortunately good arguments against it (e.g. in the newest one, initiated by arky).
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
User avatar
Blight
Junior Member
Junior Member
Posts: 55
Joined: 2003-03-22, 23:04 UTC

Post by *Blight »

StatusQuo:

1. Run WinRAR
2. Menu - Options
3. Compression (TAB) - Create Default (button)
4. Advanced (TAB) - Wait if other WinRAR copies are active.

There ya go.

I do agree that there could be an option on the TC dialog where it could have two buttons, one for canceling the archive queue (7.5 behavior) and one for just closing the wait dialog (7.0x behavior). Or a checkbox in the options dialog.


Balderstrom:
I don't use the mouse much with TC, that's the whole point.
Yaron Gur
Zoom Player . Lead Developer
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Post by *Balderstrom »

If you don't use the mouse much and prefer not to,
Then something like this would work:

Create user command, em_WinRarUnPack
cmd /c WinRarUnPack.cmd
Parameters: %S
Create WinRarUnPack.cmd, place somewhere in your PATH
@ECHO OFF
SETLOCAL
CLS
:_LOOP
START "" "%ProgramFiles%\WinRAR\WinRAR.exe" x "%~1" "%~n1"\

IF "%~2"=="" GOTO:EOF
SHIFT /1
GOTO:_LOOP
Create a HotKey, like CTRL+'
em_WinRarUnPack
If you select one or multiple .rar archives, and press CTRL+'
each archive will be unpacked to a separate folder, which is named after the archive.
i.e. if MakeList2_v250.rar is selected, will be unpacked to MakeList2_v250\

With the WinRar setting you changed above, 'wait if instance is active' it will unpack them in succession.

Or you could just change the line above to:
---> START "" /WAIT "%ProgramFiles%\WinRAR\WinRAR.exe" x "%~1" "%~n1"\
User avatar
Boofo
Power Member
Power Member
Posts: 1431
Joined: 2003-02-11, 00:29 UTC
Location: Des Moines, IA (USA)
Contact:

Post by *Boofo »

2Blight,

ExtractNow beta will do the same thing and allow you to set the path to the other window. The author has added "target %T" to work with TC.
chmod a+x /bin/laden -- Allows anyone the permission to execute /bin/laden

How do I un-overwrite all my data?

User of Total Commander
#60471 Single user license
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Post by *Balderstrom »

That's easy enough Boofo,
Create user command, em_WinRarUnPackTarget
cmd /c WinRarUnPack.cmd
Parameters: %T %S
Create WinRarUnPackTarget.cmd, place somewhere in your PATH
@ECHO OFF
SETLOCAL
CLS
:_LOOP
START "" /WAIT "%ProgramFiles%\WinRAR\WinRAR.exe" x "%~2" "%~1\%~n2"\

IF "%~3"=="" GOTO:EOF
SHIFT /2
GOTO:_LOOP
User avatar
Boofo
Power Member
Power Member
Posts: 1431
Joined: 2003-02-11, 00:29 UTC
Location: Des Moines, IA (USA)
Contact:

Post by *Boofo »

2Balderstrom,

I knew you'd have a fix for it. Good job, sir. ;)
chmod a+x /bin/laden -- Allows anyone the permission to execute /bin/laden

How do I un-overwrite all my data?

User of Total Commander
#60471 Single user license
StatusQuo
Power Member
Power Member
Posts: 1524
Joined: 2007-01-17, 21:36 UTC
Location: Germany

Post by *StatusQuo »

2Blight
4. Advanced (TAB) - Wait if other WinRAR copies are active.
Sounds interesting, thanks. But it doesn't work here with WinRar 3.71 (newer ones not tested yet) - after setting it, the second instance also starts unpacking immediately, although a first is still busy.

2Balderstrom
Nice alternative, thanks.
Also useful since not all ISO files can be unpacked with the ISO.wcx plugin, calling WinRar can be easier this way.
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
Post Reply