commit unrar for openSUSE:Factory:NonFree
Hello community, here is the log from the commit of package unrar for openSUSE:Factory:NonFree checked in at 2014-05-01 07:53:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory:NonFree/unrar (Old) and /work/SRC/openSUSE:Factory:NonFree/.unrar.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "unrar" Changes: -------- --- /work/SRC/openSUSE:Factory:NonFree/unrar/unrar.changes 2014-04-08 12:52:40.000000000 +0200 +++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new/unrar.changes 2014-05-01 07:53:22.000000000 +0200 @@ -1,0 +2,10 @@ +Sat Apr 26 08:40:53 UTC 2014 - lazy.kent@opensuse.org + +- Update to 5.1.3. + * Based on rar 5.10 beta 3. + * More efficient implementation of "Keep broken files" extraction + option (-kb switch in command line mode). Now it allows to + recover more data from file split between RAR volumes if next + volume is missing. + +------------------------------------------------------------------- Old: ---- unrarsrc-5.1.2.tar.gz New: ---- unrarsrc-5.1.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ unrar.spec ++++++ --- /var/tmp/diff_new_pack.6HnW2Z/_old 2014-05-01 07:53:22.000000000 +0200 +++ /var/tmp/diff_new_pack.6HnW2Z/_new 2014-05-01 07:53:22.000000000 +0200 @@ -18,10 +18,10 @@ # majorversion should match the major version number. %define majorversion 5 -%define libsuffix 5_1_2 +%define libsuffix 5_1_3 Name: unrar -Version: 5.1.2 +Version: 5.1.3 Release: 0 License: SUSE-NonFree Summary: A program to extract, test, and view RAR archives ++++++ unrarsrc-5.1.2.tar.gz -> unrarsrc-5.1.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/consio.cpp new/unrar/consio.cpp --- old/unrar/consio.cpp 2014-04-05 12:21:49.000000000 +0200 +++ new/unrar/consio.cpp 2014-04-23 14:12:37.000000000 +0200 @@ -243,6 +243,10 @@ #ifndef SILENT +// We allow this function to return 0 in case of invalid input, +// because it might be convenient to press Enter to some not dangerous +// prompts like "insert disk with next volume". We should call this function +// again in case of 0 in dangerous prompt such as overwriting file. int Ask(const wchar *AskStr) { uiAlarm(UIALARM_QUESTION); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc --- old/unrar/dll.rc 2014-04-05 12:18:50.000000000 +0200 +++ new/unrar/dll.rc 2014-04-23 14:05:45.000000000 +0200 @@ -2,8 +2,8 @@ #include <commctrl.h> VS_VERSION_INFO VERSIONINFO -FILEVERSION 5, 10, 2, 1192 -PRODUCTVERSION 5, 10, 2, 1192 +FILEVERSION 5, 10, 3, 1210 +PRODUCTVERSION 5, 10, 3, 1210 FILEOS VOS__WINDOWS32 FILETYPE VFT_APP { @@ -14,8 +14,8 @@ VALUE "CompanyName", "Alexander Roshal\0" VALUE "ProductName", "RAR decompression library\0" VALUE "FileDescription", "RAR decompression library\0" - VALUE "FileVersion", "5.10.2\0" - VALUE "ProductVersion", "5.10.2\0" + VALUE "FileVersion", "5.10.3\0" + VALUE "ProductVersion", "5.10.3\0" VALUE "LegalCopyright", "Copyright � Alexander Roshal 1993-2014\0" VALUE "OriginalFilename", "Unrar.dll\0" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/pathfn.cpp new/unrar/pathfn.cpp --- old/unrar/pathfn.cpp 2014-04-05 12:21:49.000000000 +0200 +++ new/unrar/pathfn.cpp 2014-04-23 14:12:37.000000000 +0200 @@ -766,7 +766,15 @@ } const wchar *ChPtr=wcschr(MaskChars,toupperw(Mask[I])); if (ChPtr==NULL || QuoteMode) + { DateText[J]=Mask[I]; +#ifdef _WIN_ALL + // We do not allow ':' in Windows because of NTFS streams. + // Users had problems after specifying hh:mm mask. + if (DateText[J]==':') + DateText[J]='_'; +#endif + } else { size_t FieldPos=ChPtr-MaskChars; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/rdwrfn.cpp new/unrar/rdwrfn.cpp --- old/unrar/rdwrfn.cpp 2014-04-05 12:21:49.000000000 +0200 +++ new/unrar/rdwrfn.cpp 2014-04-23 14:12:38.000000000 +0200 @@ -62,14 +62,18 @@ else { size_t SizeToRead=((int64)Count>UnpPackedSize) ? (size_t)UnpPackedSize:Count; - if (SizeToRead==0) - return 0; - if (!SrcFile->IsOpened()) - return(-1); - ReadSize=SrcFile->Read(ReadAddr,SizeToRead); - FileHeader *hd=SubHead!=NULL ? SubHead:&SrcArc->FileHead; - if (hd->SplitAfter) - PackedDataHash.Update(ReadAddr,ReadSize); + if (SizeToRead>0) + { + if (!SrcFile->IsOpened()) + return -1; + ReadSize=SrcFile->Read(ReadAddr,SizeToRead); + FileHeader *hd=SubHead!=NULL ? SubHead:&SrcArc->FileHead; + if (hd->SplitAfter) + PackedDataHash.Update(ReadAddr,ReadSize); + } + else + if (!UnpVolume) // For volume we'll ask for next volume below. + return 0; } CurUnpRead+=ReadSize; TotalRead+=ReadSize; @@ -80,14 +84,19 @@ Count-=ReadSize; #endif UnpPackedSize-=ReadSize; - if (UnpPackedSize == 0 && UnpVolume) + + // Do not ask for next volume if we read something from current volume. + // If next volume is missing, we need to process all data from current + // volume before aborting. It helps to recover all possible data + // in "Keep broken files" mode. + if (UnpPackedSize == 0 && UnpVolume && ReadSize==0) { #ifndef NOVOLUME if (!MergeArchive(*SrcArc,this,true,CurrentCommand)) #endif { NextVolumeMissing=true; - return(-1); + return -1; } } else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/uiconsole.cpp new/unrar/uiconsole.cpp --- old/unrar/uiconsole.cpp 2014-04-05 12:21:49.000000000 +0200 +++ new/unrar/uiconsole.cpp 2014-04-23 14:12:38.000000000 +0200 @@ -3,7 +3,11 @@ { bool AllowRename=(Flags & UIASKREP_F_NORENAME)==0; eprintf(St(MFileExists),Name); - int Choice=Ask(St(AllowRename ? MYesNoAllRenQ : MYesNoAllQ)); + int Choice=0; + do + { + Choice=Ask(St(AllowRename ? MYesNoAllRenQ : MYesNoAllQ)); + } while (Choice==0); // 0 means invalid input. switch(Choice) { case 1: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp --- old/unrar/version.hpp 2014-04-05 12:21:49.000000000 +0200 +++ new/unrar/version.hpp 2014-04-23 14:12:38.000000000 +0200 @@ -1,6 +1,6 @@ #define RARVER_MAJOR 5 #define RARVER_MINOR 10 -#define RARVER_BETA 2 -#define RARVER_DAY 5 +#define RARVER_BETA 3 +#define RARVER_DAY 23 #define RARVER_MONTH 4 #define RARVER_YEAR 2014 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/volume.cpp new/unrar/volume.cpp --- old/unrar/volume.cpp 2014-04-05 12:21:49.000000000 +0200 +++ new/unrar/volume.cpp 2014-04-23 14:12:38.000000000 +0200 @@ -188,25 +188,28 @@ if (Cmd->Callback!=NULL) { - wchar CurName[NM]; - wcscpy(CurName,NextName); + wchar OrgNextName[NM]; + wcscpy(OrgNextName,NextName); if (Cmd->Callback(UCM_CHANGEVOLUMEW,Cmd->UserData,(LPARAM)NextName,RAR_VOL_ASK)==-1) DllVolAborted=true; else - if (wcscmp(CurName,NextName)!=0) + if (wcscmp(OrgNextName,NextName)!=0) DllVolChanged=true; else { - char NextNameA[NM]; + char NextNameA[NM],OrgNextNameA[NM]; WideToChar(NextName,NextNameA,ASIZE(NextNameA)); + strcpy(OrgNextNameA,NextNameA); if (Cmd->Callback(UCM_CHANGEVOLUME,Cmd->UserData,(LPARAM)NextNameA,RAR_VOL_ASK)==-1) DllVolAborted=true; else - { - CharToWide(NextNameA,NextName,NameSize); - if (wcscmp(CurName,NextName)!=0) + if (strcmp(OrgNextNameA,NextNameA)!=0) + { + // We can damage some Unicode characters by U->A->U conversion, + // so set Unicode name only if we see that ANSI name is changed. + CharToWide(NextNameA,NextName,NameSize); DllVolChanged=true; - } + } } } if (!DllVolChanged && Cmd->ChangeVolProc!=NULL) -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de