diff options
author | XhmikosR <xhmikosr@users.sourceforge.net> | 2013-09-03 17:17:42 +0400 |
---|---|---|
committer | XhmikosR <xhmikosr@users.sourceforge.net> | 2013-09-04 18:35:28 +0400 |
commit | c262e3a25ee58d9dbfc8f5dfac9afc8d0ff40330 (patch) | |
tree | 48c192017d8a72b91a2a5102bd47247c3a987b9a /src | |
parent | 826213e9b96c76367a3fd71730a9410e54dd0698 (diff) |
Update Unrar to 5.0.0 (stable).
Diffstat (limited to 'src')
-rw-r--r-- | src/thirdparty/unrar/archive.cpp | 1 | ||||
-rw-r--r-- | src/thirdparty/unrar/dll.rc | 8 | ||||
-rw-r--r-- | src/thirdparty/unrar/list.cpp | 22 | ||||
-rw-r--r-- | src/thirdparty/unrar/options.hpp | 1 | ||||
-rw-r--r-- | src/thirdparty/unrar/pathfn.cpp | 4 | ||||
-rw-r--r-- | src/thirdparty/unrar/version.hpp | 4 | ||||
-rw-r--r-- | src/thirdparty/unrar/volume.cpp | 1 |
7 files changed, 34 insertions, 7 deletions
diff --git a/src/thirdparty/unrar/archive.cpp b/src/thirdparty/unrar/archive.cpp index 16599e404..bf54c89e1 100644 --- a/src/thirdparty/unrar/archive.cpp +++ b/src/thirdparty/unrar/archive.cpp @@ -131,6 +131,7 @@ RARFORMAT Archive::IsSignature(const byte *D,size_t Size) bool Archive::IsArchive(bool EnableBroken) { Encrypted=false; + BrokenHeader=false; // Might be left from previous volume. #ifdef USE_QOPEN QOpen.Unload(); #endif diff --git a/src/thirdparty/unrar/dll.rc b/src/thirdparty/unrar/dll.rc index cc229a2b2..6a91d1a9a 100644 --- a/src/thirdparty/unrar/dll.rc +++ b/src/thirdparty/unrar/dll.rc @@ -2,8 +2,8 @@ #include <commctrl.h>
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 5, 0, 8, 945
-PRODUCTVERSION 5, 0, 8, 945
+FILEVERSION 5, 0, 100, 965
+PRODUCTVERSION 5, 0, 100, 965
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
{
@@ -14,8 +14,8 @@ FILETYPE VFT_APP VALUE "CompanyName", "Alexander Roshal\0"
VALUE "ProductName", "RAR decompression library\0"
VALUE "FileDescription", "RAR decompression library\0"
- VALUE "FileVersion", "5.0.8\0"
- VALUE "ProductVersion", "5.0.8\0"
+ VALUE "FileVersion", "5.0.0\0"
+ VALUE "ProductVersion", "5.0.0\0"
VALUE "LegalCopyright", "Copyright © Alexander Roshal 1993-2013\0"
VALUE "OriginalFilename", "Unrar.dll\0"
}
diff --git a/src/thirdparty/unrar/list.cpp b/src/thirdparty/unrar/list.cpp index abc3c7dc3..7f1e3cd95 100644 --- a/src/thirdparty/unrar/list.cpp +++ b/src/thirdparty/unrar/list.cpp @@ -270,7 +270,27 @@ void ListFileHeader(Archive &Arc,FileHeader &hd,bool &TitleShown,bool Verbose,bo } mprintf(L"\n%12ls: %ls",St(MListType),Type); if (hd.RedirType!=FSREDIR_NONE) - mprintf(L"\n%12ls: %ls",St(MListTarget),hd.RedirName); + if (Format==RARFMT15) + { + char LinkTargetA[NM]; + if (Arc.FileHead.Encrypted) + { + // Link data are encrypted. We would need to ask for password + // and initialize decryption routine to display the link target. + strncpyz(LinkTargetA,"*<-?->",ASIZE(LinkTargetA)); + } + else + { + int DataSize=(int)Min(hd.PackSize,ASIZE(LinkTargetA)-1); + Arc.Read(LinkTargetA,DataSize); + LinkTargetA[DataSize > 0 ? DataSize : 0] = 0; + } + wchar LinkTarget[NM]; + CharToWide(LinkTargetA,LinkTarget,ASIZE(LinkTarget)); + mprintf(L"\n%12ls: %ls",St(MListTarget),LinkTarget); + } + else + mprintf(L"\n%12ls: %ls",St(MListTarget),hd.RedirName); } if (!hd.Dir) { diff --git a/src/thirdparty/unrar/options.hpp b/src/thirdparty/unrar/options.hpp index bf8c8e74c..283297c53 100644 --- a/src/thirdparty/unrar/options.hpp +++ b/src/thirdparty/unrar/options.hpp @@ -168,6 +168,7 @@ class RAROptions + #ifdef RARDLL wchar DllDestName[NM]; int DllOpMode; diff --git a/src/thirdparty/unrar/pathfn.cpp b/src/thirdparty/unrar/pathfn.cpp index 7cd485842..080996297 100644 --- a/src/thirdparty/unrar/pathfn.cpp +++ b/src/thirdparty/unrar/pathfn.cpp @@ -973,6 +973,10 @@ bool GetWinLongPath(const wchar *Src,wchar *Dest,size_t MaxSize) return false; wcsncpy(Dest,Prefix,PrefixLength); wcscpy(Dest+PrefixLength,CurDir); + + if (Src[0]=='.' && IsPathDiv(Src[1])) // Remove leading .\ in pathname. + Src+=2; + wcsncatz(Dest,Src,MaxSize); return true; } diff --git a/src/thirdparty/unrar/version.hpp b/src/thirdparty/unrar/version.hpp index 50f490638..183d26e59 100644 --- a/src/thirdparty/unrar/version.hpp +++ b/src/thirdparty/unrar/version.hpp @@ -1,6 +1,6 @@ #define RARVER_MAJOR 5 #define RARVER_MINOR 0 -#define RARVER_BETA 8 -#define RARVER_DAY 2 +#define RARVER_BETA 0 +#define RARVER_DAY 22 #define RARVER_MONTH 8 #define RARVER_YEAR 2013 diff --git a/src/thirdparty/unrar/volume.cpp b/src/thirdparty/unrar/volume.cpp index de9d2424f..6fcab7624 100644 --- a/src/thirdparty/unrar/volume.cpp +++ b/src/thirdparty/unrar/volume.cpp @@ -32,6 +32,7 @@ bool MergeArchive(Archive &Arc,ComprDataIO *DataIO,bool ShowFileName,wchar Comma if (DataIO!=NULL) DataIO->ProcessedArcSize+=Arc.FileLength(); + Arc.Close(); wchar NextName[NM]; |