Hello community, here is the log from the commit of package unrar for openSUSE:Factory:NonFree checked in at 2014-11-06 18:07:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-10-17 11:30:59.000000000 +0200 +++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new/unrar.changes 2014-11-06 18:07:58.000000000 +0100 @@ -1,0 +2,7 @@ +Mon Nov 3 17:59:31 UTC 2014 - [email protected] + +- Update to 5.2.2. + * Based on rar 5.20 beta 3. + * No changelog available. + +------------------------------------------------------------------- Old: ---- unrarsrc-5.2.1.tar.gz New: ---- unrarsrc-5.2.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ unrar.spec ++++++ --- /var/tmp/diff_new_pack.z5zwcV/_old 2014-11-06 18:07:59.000000000 +0100 +++ /var/tmp/diff_new_pack.z5zwcV/_new 2014-11-06 18:07:59.000000000 +0100 @@ -18,10 +18,10 @@ # majorversion should match the major version number. %define majorversion 5 -%define libsuffix 5_2_1 +%define libsuffix 5_2_2 Name: unrar -Version: 5.2.1 +Version: 5.2.2 Release: 0 License: SUSE-NonFree Summary: A program to extract, test, and view RAR archives ++++++ unrarsrc-5.2.1.tar.gz -> unrarsrc-5.2.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/arcread.cpp new/unrar/arcread.cpp --- old/unrar/arcread.cpp 2014-10-05 20:17:48.000000000 +0200 +++ new/unrar/arcread.cpp 2014-11-03 09:39:29.000000000 +0100 @@ -811,7 +811,7 @@ Raw.GetB((byte *)FileName,ReadNameSize); FileName[ReadNameSize]=0; - UtfToWide(FileName,hd->FileName,ASIZE(hd->FileName)-1); + UtfToWide(FileName,hd->FileName,ASIZE(hd->FileName)); // Should do it before converting names, because extra fields can // affect name processing, like in case of NTFS streams. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc --- old/unrar/dll.rc 2014-10-05 20:14:34.000000000 +0200 +++ new/unrar/dll.rc 2014-11-03 09:35:46.000000000 +0100 @@ -2,8 +2,8 @@ #include <commctrl.h> VS_VERSION_INFO VERSIONINFO -FILEVERSION 5, 20, 1, 1376 -PRODUCTVERSION 5, 20, 1, 1376 +FILEVERSION 5, 20, 3, 1404 +PRODUCTVERSION 5, 20, 3, 1404 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.20.1\0" - VALUE "ProductVersion", "5.20.1\0" + VALUE "FileVersion", "5.20.3\0" + VALUE "ProductVersion", "5.20.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/extract.cpp new/unrar/extract.cpp --- old/unrar/extract.cpp 2014-10-05 20:17:48.000000000 +0200 +++ new/unrar/extract.cpp 2014-11-03 09:39:29.000000000 +0100 @@ -50,6 +50,10 @@ DataIO.ProcessedArcSize+=FD.Size; } + // Clean user entered password. Not really required, just for extra safety. + if (Cmd->ManualPassword) + Cmd->Password.Clean(); + if (TotalFileCount==0 && Cmd->Command[0]!='I' && ErrHandler.GetErrorCode()!=RARX_BADPWD) // Not in case of wrong archive password. { @@ -256,15 +260,11 @@ int MatchNumber=Cmd->IsProcessFile(Arc.FileHead,&EqualNames,MatchType); bool ExactMatch=MatchNumber!=0; #ifndef SFX_MODULE - if (*Cmd->ArcPath==0 && Cmd->ExclPath==EXCL_BASEPATH) + if (*Cmd->ArcPath==0 && Cmd->ExclPath==EXCL_BASEPATH && ExactMatch) { - *Cmd->ArcPath=0; - if (ExactMatch) - { - Cmd->FileArgs.Rewind(); - if (Cmd->FileArgs.GetString(Cmd->ArcPath,ASIZE(Cmd->ArcPath),MatchNumber-1)) - *PointToName(Cmd->ArcPath)=0; - } + Cmd->FileArgs.Rewind(); + if (Cmd->FileArgs.GetString(Cmd->ArcPath,ASIZE(Cmd->ArcPath),MatchNumber-1)) + *PointToName(Cmd->ArcPath)=0; } #endif if (ExactMatch && !EqualNames) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/file.cpp new/unrar/file.cpp --- old/unrar/file.cpp 2014-10-05 20:17:48.000000000 +0200 +++ new/unrar/file.cpp 2014-11-03 09:39:29.000000000 +0100 @@ -2,7 +2,7 @@ File::File() { - hFile=BAD_HANDLE; + hFile=FILE_BAD_HANDLE; *FileName=0; NewFile=false; LastWrite=false; @@ -22,7 +22,7 @@ File::~File() { - if (hFile!=BAD_HANDLE && !SkipClose) + if (hFile!=FILE_BAD_HANDLE && !SkipClose) if (NewFile) Delete(); else @@ -59,7 +59,7 @@ hNewFile=CreateFile(Name,Access,ShareMode,NULL,OPEN_EXISTING,Flags,NULL); DWORD LastError; - if (hNewFile==BAD_HANDLE) + if (hNewFile==FILE_BAD_HANDLE) { LastError=GetLastError(); @@ -85,7 +85,7 @@ } } - if (hNewFile==BAD_HANDLE && LastError==ERROR_FILE_NOT_FOUND) + if (hNewFile==FILE_BAD_HANDLE && LastError==ERROR_FILE_NOT_FOUND) ErrorType=FILE_NOTFOUND; #else int flags=UpdateMode ? O_RDWR:(WriteMode ? O_WRONLY:O_RDONLY); @@ -112,7 +112,7 @@ } #endif if (handle==-1) - hNewFile=BAD_HANDLE; + hNewFile=FILE_BAD_HANDLE; else { #ifdef FILE_USE_OPEN @@ -121,13 +121,13 @@ hNewFile=fdopen(handle,UpdateMode ? UPDATEBINARY:READBINARY); #endif } - if (hNewFile==BAD_HANDLE && errno==ENOENT) + if (hNewFile==FILE_BAD_HANDLE && errno==ENOENT) ErrorType=FILE_NOTFOUND; #endif NewFile=false; HandleType=FILE_HANDLENORMAL; SkipClose=false; - bool Success=hNewFile!=BAD_HANDLE; + bool Success=hNewFile!=FILE_BAD_HANDLE; if (Success) { hFile=hNewFile; @@ -174,11 +174,11 @@ bool Special=*LastChar=='.' || *LastChar==' '; if (Special) - hFile=BAD_HANDLE; + hFile=FILE_BAD_HANDLE; else hFile=CreateFile(Name,Access,ShareMode,NULL,CREATE_ALWAYS,0,NULL); - if (hFile==BAD_HANDLE) + if (hFile==FILE_BAD_HANDLE) { wchar LongName[NM]; if (GetWinLongPath(Name,LongName,ASIZE(LongName))) @@ -190,6 +190,10 @@ WideToChar(Name,NameA,ASIZE(NameA)); #ifdef FILE_USE_OPEN hFile=open(NameA,(O_CREAT|O_TRUNC) | (WriteMode ? O_WRONLY : O_RDWR)); +#ifdef _ANDROID + if (hFile==FILE_BAD_HANDLE) + hFile=JniCreateFile(Name); // If external card is read-only for usual file API. +#endif #else hFile=fopen(NameA,WriteMode ? WRITEBINARY:CREATEBINARY); #endif @@ -198,7 +202,7 @@ HandleType=FILE_HANDLENORMAL; SkipClose=false; wcsncpyz(FileName,Name,ASIZE(FileName)); - return hFile!=BAD_HANDLE; + return hFile!=FILE_BAD_HANDLE; } @@ -224,7 +228,7 @@ { bool Success=true; - if (hFile!=BAD_HANDLE) + if (hFile!=FILE_BAD_HANDLE) { if (!SkipClose) { @@ -241,7 +245,7 @@ #endif #endif } - hFile=BAD_HANDLE; + hFile=FILE_BAD_HANDLE; } HandleType=FILE_HANDLENORMAL; if (!Success && AllowExceptions) @@ -254,7 +258,7 @@ { if (HandleType!=FILE_HANDLENORMAL) return false; - if (hFile!=BAD_HANDLE) + if (hFile!=FILE_BAD_HANDLE) Close(); if (!AllowDelete) return false; @@ -287,7 +291,7 @@ hFile=GetStdHandle(STD_OUTPUT_HANDLE); #else // Cannot use the standard stdout here, because it already has wide orientation. - if (hFile==BAD_HANDLE) + if (hFile==FILE_BAD_HANDLE) { #ifdef FILE_USE_OPEN hFile=dup(STDOUT_FILENO); // Open new stdout stream. @@ -465,7 +469,7 @@ bool File::RawSeek(int64 Offset,int Method) { - if (hFile==BAD_HANDLE) + if (hFile==FILE_BAD_HANDLE) return true; if (Offset<0 && Method!=SEEK_SET) { @@ -496,7 +500,7 @@ int64 File::Tell() { - if (hFile==BAD_HANDLE) + if (hFile==FILE_BAD_HANDLE) if (AllowExceptions) ErrHandler.SeekError(FileName); else @@ -647,7 +651,7 @@ bool File::IsDevice() { - if (hFile==BAD_HANDLE) + if (hFile==FILE_BAD_HANDLE) return false; #ifdef _WIN_ALL uint Type=GetFileType(hFile); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/file.hpp new/unrar/file.hpp --- old/unrar/file.hpp 2014-10-05 20:17:48.000000000 +0200 +++ new/unrar/file.hpp 2014-11-03 09:39:29.000000000 +0100 @@ -7,13 +7,13 @@ #ifdef _WIN_ALL typedef HANDLE FileHandle; - #define BAD_HANDLE INVALID_HANDLE_VALUE + #define FILE_BAD_HANDLE INVALID_HANDLE_VALUE #elif defined(FILE_USE_OPEN) typedef off_t FileHandle; - #define BAD_HANDLE -1 + #define FILE_BAD_HANDLE -1 #else typedef FILE* FileHandle; - #define BAD_HANDLE NULL + #define FILE_BAD_HANDLE NULL #endif class RAROptions; @@ -94,7 +94,7 @@ void SetCloseFileTime(RarTime *ftm,RarTime *fta=NULL); static void SetCloseFileTimeByName(const wchar *Name,RarTime *ftm,RarTime *fta); void GetOpenFileTime(RarTime *ft); - bool IsOpened() {return hFile!=BAD_HANDLE;}; + bool IsOpened() {return hFile!=FILE_BAD_HANDLE;}; int64 FileLength(); void SetHandleType(FILE_HANDLETYPE Type) {HandleType=Type;} FILE_HANDLETYPE GetHandleType() {return HandleType;} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/filefn.cpp new/unrar/filefn.cpp --- old/unrar/filefn.cpp 2014-10-05 20:17:48.000000000 +0200 +++ new/unrar/filefn.cpp 2014-11-03 09:39:29.000000000 +0100 @@ -29,6 +29,10 @@ WideToChar(Name,NameA,ASIZE(NameA)); mode_t uattr=SetAttr ? (mode_t)Attr:0777; int ErrCode=mkdir(NameA,uattr); +#ifdef _ANDROID + if (ErrCode==-1 && errno!=ENOENT) + ErrCode=JniMkdir(Name) ? 0 : -1; // If external card is read-only for usual file API. +#endif if (ErrCode==-1) return errno==ENOENT ? MKDIR_BADPATH:MKDIR_ERROR; return MKDIR_SUCCESS; @@ -58,8 +62,9 @@ break; // Process all kinds of path separators, so user can enter Unix style - // path in Windows or Windows in Unix. - if (IsPathDiv(*s)) + // path in Windows or Windows in Unix. s>Path check avoids attempting + // creating an empty directory for paths starting from path separator. + if (IsPathDiv(*s) && s>Path) { #ifdef _WIN_ALL // We must not attempt to create "D:" directory, because first @@ -411,7 +416,12 @@ char SrcNameA[NM],DestNameA[NM]; WideToChar(SrcName,SrcNameA,ASIZE(SrcNameA)); WideToChar(DestName,DestNameA,ASIZE(DestNameA)); - return rename(SrcNameA,DestNameA)==0; + bool Success=rename(SrcNameA,DestNameA)==0; +#ifdef _ANDROID + if (!Success) + Success=JniRename(SrcName,DestName); // If external card is read-only for usual file API. +#endif + return Success; #endif } @@ -430,7 +440,12 @@ #else char NameA[NM]; WideToChar(Name,NameA,ASIZE(NameA)); - return remove(NameA)==0; + bool Success=remove(NameA)==0; +#ifdef _ANDROID + if (!Success) + Success=JniDelete(Name); +#endif + return Success; #endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/list.cpp new/unrar/list.cpp --- old/unrar/list.cpp 2014-10-05 20:17:48.000000000 +0200 +++ new/unrar/list.cpp 2014-11-03 09:39:29.000000000 +0100 @@ -165,6 +165,10 @@ } } + // Clean user entered password. Not really required, just for extra safety. + if (Cmd->ManualPassword) + Cmd->Password.Clean(); + if (ArcCount>1 && !Bare && !Technical) { wchar UnpSizeText[20],PackSizeText[20]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp --- old/unrar/version.hpp 2014-10-05 20:17:48.000000000 +0200 +++ new/unrar/version.hpp 2014-11-03 09:39:29.000000000 +0100 @@ -1,6 +1,6 @@ #define RARVER_MAJOR 5 #define RARVER_MINOR 20 -#define RARVER_BETA 1 -#define RARVER_DAY 6 -#define RARVER_MONTH 10 +#define RARVER_BETA 3 +#define RARVER_DAY 3 +#define RARVER_MONTH 11 #define RARVER_YEAR 2014 -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
