Review Request 124111: Support overwrite prompt of unrar v5

Ragnar Thomsen rthomsen6 at gmail.com
Wed Jun 17 09:21:29 UTC 2015


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124111/
-----------------------------------------------------------

(Updated June 17, 2015, 11:21 a.m.)


Review request for KDE Utils, Elvis Angelaccio and Raphael Kubo da Costa.


Changes
-------

There was an issue with the previous diffs in this RR. Due to the filename being at the end of the line in the overwrite prompt in unar v5 and the fact that output from external extraction programs is delivered in chunks of random size, sometimes the filename would be truncated in the rename dialog presented to the user. This is now solved by having two QRegExp's: One that matches the last line in the overwrite prompt (FileExistsExpression), and one that matches the line containing the filename (FileExistsFileName). The filename is stored in a new private QString (m_storedFileName).
This approach also fixes other multi-line overwrite prompts, such as the one in the cli7z plugin, where the line we match against does not contain the filename. Previously, no filename was presented in the rename dialog when using this plugin.
For plugins where the last line contains the filename (clizip and clilha), FileExistsExpression and FileExistsFileName can be set to the same.


Repository: ark


Description
-------

The overwrite prompt of unrar v5 changed compared to v3 and v4. This causes Ark to hang when extracting a rar archive with unrar v5 when a destination file exists. In unrar v5 the overwrite prompt looks like:

    Would you like to replace the existing file file1.txt
        32 bytes, modified on 15-05-2015 14:26
    with a new one
        32 bytes, modified on 15-05-2015 14:26
        
and in unrar v3 and v4:

    file1.txt already exists. Overwrite it ?

Ark currently only supports the v3/v4 prompt. This patch adds support for the v5 prompt by defining a QStringList containing regexps for both prompts and iterating through the QStringList in CliInterface::checkForFileExistsMessage().


Diffs
-----

  kerfuffle/cliinterface.h e93d443 
  kerfuffle/cliinterface.cpp 2ce6a06 
  plugins/cli7zplugin/cliplugin.cpp 1c1389f 
  plugins/clilhaplugin/cliplugin.cpp 3e2b338 
  plugins/clirarplugin/cliplugin.cpp 489abd6 
  plugins/clizipplugin/cliplugin.cpp c927581 

Diff: https://git.reviewboard.kde.org/r/124111/diff/


Testing (updated)
-------

Extracting rar archives using both v4 and v5 unrar works as expected, also when destination exists. Extraction using clizip and cli7z also works as expected.


Thanks,

Ragnar Thomsen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-utils-devel/attachments/20150617/f734ec59/attachment-0001.html>


More information about the Kde-utils-devel mailing list