Hello community,
here is the log from the commit of package unrar for openSUSE:Factory:NonFree checked in at 2013-11-12 16:37:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 2013-10-21 15:15:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new/unrar.changes 2013-11-12 16:37:03.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Nov 12 12:53:14 UTC 2013 - idonmez@suse.com
+
+- Update to 5.0.13
+ * No changelog
+
+-------------------------------------------------------------------
Old:
----
unrarsrc-5.0.12.tar.gz
New:
----
unrarsrc-5.0.13.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ unrar.spec ++++++
--- /var/tmp/diff_new_pack.ZGdagg/_old 2013-11-12 16:37:04.000000000 +0100
+++ /var/tmp/diff_new_pack.ZGdagg/_new 2013-11-12 16:37:04.000000000 +0100
@@ -18,10 +18,10 @@
# majorversion should match the major version number.
%define majorversion 5
-%define libsuffix 5_0_12
+%define libsuffix 5_0_13
Name: unrar
-Version: 5.0.12
+Version: 5.0.13
Release: 0
License: SUSE-NonFree
Summary: A program to extract, test, and view RAR archives
++++++ unrarsrc-5.0.12.tar.gz -> unrarsrc-5.0.13.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/archive.cpp new/unrar/archive.cpp
--- old/unrar/archive.cpp 2013-09-24 20:08:23.000000000 +0200
+++ new/unrar/archive.cpp 2013-11-12 09:00:45.000000000 +0100
@@ -49,6 +49,7 @@
NewArchive=false;
SilentOpen=false;
+
}
@@ -201,6 +202,15 @@
else
MarkHead.HeadSize=SIZEOF_MARKHEAD3;
+#ifdef RARDLL
+ // If callback function is not set, we cannot get the password,
+ // so we skip the initial header processing for encrypted header archive.
+ // It leads to skipped archive comment, but the rest of archive data
+ // is processed correctly.
+ if (Cmd->Callback==NULL)
+ SilentOpen=true;
+#endif
+
// Skip the archive encryption header if any and read the main header.
while (ReadHeader()!=0)
{
@@ -244,15 +254,6 @@
}
*/
-#ifdef RARDLL
- // If callback function is not set, we cannot get the password,
- // so we skip the initial header processing for encrypted header archive.
- // It leads to skipped archive comment, but the rest of archive data
- // is processed correctly.
- if (Cmd->Callback==NULL)
- SilentOpen=true;
-#endif
-
MainComment=MainHead.CommentInHeader;
// If we process non-encrypted archive or can request a password,
@@ -271,10 +272,10 @@
{
HEADER_TYPE HeaderType=GetHeaderType();
if (HeaderType==HEAD_SERVICE)
- FirstVolume=!SubHead.SplitBefore;
+ FirstVolume=Volume && !SubHead.SplitBefore;
else
{
- FirstVolume=HeaderType==HEAD_FILE && !FileHead.SplitBefore;
+ FirstVolume=Volume && HeaderType==HEAD_FILE && !FileHead.SplitBefore;
break;
}
SeekToNext();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/dll.cpp new/unrar/dll.cpp
--- old/unrar/dll.cpp 2013-09-24 20:08:23.000000000 +0200
+++ new/unrar/dll.cpp 2013-11-12 09:00:45.000000000 +0100
@@ -73,7 +73,16 @@
}
if (!Data->Arc.IsArchive(false))
{
- r->OpenResult=Data->Cmd.DllError!=0 ? Data->Cmd.DllError:ERAR_BAD_ARCHIVE;
+ if (Data->Cmd.DllError!=0)
+ r->OpenResult=Data->Cmd.DllError;
+ else
+ {
+ RAR_EXIT ErrCode=ErrHandler.GetErrorCode();
+ if (ErrCode!=RARX_SUCCESS && ErrCode!=RARX_WARNING)
+ r->OpenResult=RarErrorToDll(ErrCode);
+ else
+ r->OpenResult=ERAR_BAD_ARCHIVE;
+ }
delete Data;
return NULL;
}
@@ -197,7 +206,7 @@
else
return Code;
}
- wcsncpy(D->ArcNameW,hd->FileName,ASIZE(D->ArcNameW));
+ wcsncpy(D->ArcNameW,Data->Arc.FileName,ASIZE(D->ArcNameW));
WideToChar(D->ArcNameW,D->ArcName,ASIZE(D->ArcName));
wcsncpy(D->FileNameW,hd->FileName,ASIZE(D->FileNameW));
@@ -419,6 +428,8 @@
return ERAR_ECREATE;
case RARX_MEMORY:
return ERAR_NO_MEMORY;
+ case RARX_BADPWD:
+ return ERAR_BAD_PASSWORD;
case RARX_SUCCESS:
return ERAR_SUCCESS; // 0.
default:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/dll.hpp new/unrar/dll.hpp
--- old/unrar/dll.hpp 2013-09-24 20:08:23.000000000 +0200
+++ new/unrar/dll.hpp 2013-11-12 09:00:45.000000000 +0100
@@ -17,6 +17,8 @@
#define ERAR_SMALL_BUF 20
#define ERAR_UNKNOWN 21
#define ERAR_MISSING_PASSWORD 22
+#define ERAR_EREFERENCE 23
+#define ERAR_BAD_PASSWORD 24
#define RAR_OM_LIST 0
#define RAR_OM_EXTRACT 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc
--- old/unrar/dll.rc 2013-08-22 15:00:02.000000000 +0200
+++ new/unrar/dll.rc 2013-11-12 08:56:32.000000000 +0100
@@ -2,8 +2,8 @@
#include
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 5, 0, 100, 965
-PRODUCTVERSION 5, 0, 100, 965
+FILEVERSION 5, 1, 1, 1047
+PRODUCTVERSION 5, 1, 1, 1047
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.0.0\0"
- VALUE "ProductVersion", "5.0.0\0"
+ VALUE "FileVersion", "5.1.1\0"
+ VALUE "ProductVersion", "5.1.1\0"
VALUE "LegalCopyright", "Copyright � Alexander Roshal 1993-2013\0"
VALUE "OriginalFilename", "Unrar.dll\0"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/errhnd.cpp new/unrar/errhnd.cpp
--- old/unrar/errhnd.cpp 2013-09-24 20:08:23.000000000 +0200
+++ new/unrar/errhnd.cpp 2013-11-12 09:00:46.000000000 +0100
@@ -254,6 +254,10 @@
if (ExitCode==RARX_SUCCESS)
ExitCode=Code;
break;
+ case RARX_CRC:
+ if (ExitCode!=RARX_BADPWD)
+ ExitCode=Code;
+ break;
case RARX_FATAL:
if (ExitCode==RARX_SUCCESS || ExitCode==RARX_WARNING)
ExitCode=RARX_FATAL;
@@ -338,7 +342,7 @@
if (Code!=RARX_SUCCESS && Code!=RARX_USERERROR)
mprintf(L"\n%s\n",St(MProgAborted));
#endif
- ErrHandler.SetErrorCode(Code);
+ SetErrorCode(Code);
throw Code;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/extract.cpp new/unrar/extract.cpp
--- old/unrar/extract.cpp 2013-09-24 20:08:23.000000000 +0200
+++ new/unrar/extract.cpp 2013-11-12 09:00:46.000000000 +0100
@@ -555,7 +555,7 @@
if (Type==FSREDIR_HARDLINK)
LinkSuccess=ExtractHardlink(DestFileName,NameExisting,ASIZE(NameExisting));
else
- LinkSuccess=ExtractFileCopy(CurFile,Arc.FileName,DestFileName,NameExisting,ASIZE(NameExisting));
+ LinkSuccess=ExtractFileCopy(Cmd,CurFile,Arc.FileName,DestFileName,NameExisting,ASIZE(NameExisting));
}
else
if (Type==FSREDIR_UNIXSYMLINK || Type==FSREDIR_WINSYMLINK || Type==FSREDIR_JUNCTION)
@@ -615,12 +615,12 @@
bool BrokenFile=false;
// Checksum is not calculated in skip solid mode for performance reason.
- if (!SkipSolid)
+ if (!SkipSolid && ShowChecksum)
{
if (!WrongPassword && ValidCRC)
{
#ifndef GUI
- if (Command!='P' && Command!='I' && ShowChecksum)
+ if (Command!='P' && Command!='I')
mprintf(L"%s%s ",Cmd->DisablePercentage ? L" ":L"\b\b\b\b\b ",
Arc.FileHead.FileHash.Type==HASH_NONE ? L" ?":St(MOk));
#endif
@@ -706,7 +706,7 @@
void CmdExtract::UnstoreFile(ComprDataIO &DataIO,int64 DestUnpSize)
{
- Array<byte> Buffer(0x100000);
+ Array<byte> Buffer(0x40000);
while (1)
{
uint Code=DataIO.UnpRead(&Buffer[0],Buffer.Size());
@@ -720,7 +720,7 @@
}
-bool CmdExtract::ExtractFileCopy(File &New,wchar *ArcName,wchar *NameNew,wchar *NameExisting,size_t NameExistingSize)
+bool CmdExtract::ExtractFileCopy(CommandData *Cmd,File &New,wchar *ArcName,wchar *NameNew,wchar *NameExisting,size_t NameExistingSize)
{
#ifdef _WIN_ALL
UnixSlashToDos(NameExisting,NameExisting,NameExistingSize);
@@ -733,6 +733,9 @@
ErrHandler.OpenErrorMsg(ArcName,NameExisting);
Log(ArcName,St(MCopyError),NameExisting,NameNew);
Log(ArcName,St(MCopyErrorHint));
+#ifdef RARDLL
+ Cmd->DllError=ERAR_EREFERENCE;
+#endif
return false;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/extract.hpp new/unrar/extract.hpp
--- old/unrar/extract.hpp 2013-09-24 20:08:24.000000000 +0200
+++ new/unrar/extract.hpp 2013-11-12 09:00:46.000000000 +0100
@@ -7,7 +7,7 @@
{
private:
EXTRACT_ARC_CODE ExtractArchive(CommandData *Cmd);
- bool ExtractFileCopy(File &New,wchar *ArcName,wchar *NameNew,wchar *NameExisting,size_t NameExistingSize);
+ bool ExtractFileCopy(CommandData *Cmd,File &New,wchar *ArcName,wchar *NameNew,wchar *NameExisting,size_t NameExistingSize);
void ExtrPrepareName(CommandData *Cmd,Archive &Arc,const wchar *ArcFileName,wchar *DestName,size_t DestSize);
#ifdef RARDLL
bool ExtrDllGetPassword(CommandData *Cmd);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/file.cpp new/unrar/file.cpp
--- old/unrar/file.cpp 2013-09-24 20:08:24.000000000 +0200
+++ new/unrar/file.cpp 2013-11-12 09:00:46.000000000 +0100
@@ -68,7 +68,10 @@
wchar LongName[NM];
if (GetWinLongPath(Name,LongName,ASIZE(LongName)))
+ {
hNewFile=CreateFile(LongName,Access,ShareMode,NULL,OPEN_EXISTING,Flags,NULL);
+ LastError=GetLastError();
+ }
}
if (hNewFile==BAD_HANDLE && LastError==ERROR_FILE_NOT_FOUND)
@@ -188,23 +191,25 @@
bool File::Close()
{
bool Success=true;
- if (HandleType!=FILE_HANDLENORMAL)
- HandleType=FILE_HANDLENORMAL;
- else
- if (hFile!=BAD_HANDLE)
+
+ if (hFile!=BAD_HANDLE)
+ {
+ if (!SkipClose)
{
- if (!SkipClose)
- {
#ifdef _WIN_ALL
+ // We use the standard system handle for stdout in Windows
+ // and it must not be closed here.
+ if (HandleType==FILE_HANDLENORMAL)
Success=CloseHandle(hFile)==TRUE;
#else
- Success=fclose(hFile)!=EOF;
+ Success=fclose(hFile)!=EOF;
#endif
- }
- hFile=BAD_HANDLE;
- if (!Success && AllowExceptions)
- ErrHandler.CloseError(FileName);
}
+ hFile=BAD_HANDLE;
+ }
+ HandleType=FILE_HANDLENORMAL;
+ if (!Success && AllowExceptions)
+ ErrHandler.CloseError(FileName);
return Success;
}
@@ -250,24 +255,16 @@
{
if (Size==0)
return;
- if (HandleType!=FILE_HANDLENORMAL)
- switch(HandleType)
- {
- case FILE_HANDLESTD:
-#ifdef _WIN_ALL
- hFile=GetStdHandle(STD_OUTPUT_HANDLE);
-#else
- hFile=stdout;
-#endif
- break;
- case FILE_HANDLEERR:
+ if (HandleType==FILE_HANDLESTD)
+ {
#ifdef _WIN_ALL
- hFile=GetStdHandle(STD_ERROR_HANDLE);
+ hFile=GetStdHandle(STD_OUTPUT_HANDLE);
#else
- hFile=stderr;
+ // Cannot use the standard stdout here, because it already has wide orientation.
+ if (hFile==BAD_HANDLE)
+ hFile=fdopen(dup(1),"w"); // Open new stdout stream.
#endif
- break;
- }
+ }
while (1)
{
bool Success=false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/pathfn.cpp new/unrar/pathfn.cpp
--- old/unrar/pathfn.cpp 2013-09-24 20:08:24.000000000 +0200
+++ new/unrar/pathfn.cpp 2013-11-12 09:00:46.000000000 +0100
@@ -424,7 +424,7 @@
#ifndef _UNIX
if (s-Name>1 && *s==':')
*s='_';
- if ((*s==' ' || *s=='.') && IsPathDiv(s[1]))
+ if ((*s==' ' || *s=='.' && s>Name && !IsPathDiv(s[-1]) && s[-1]!='.') && IsPathDiv(s[1]))
*s='_';
#endif
}
@@ -440,7 +440,7 @@
#ifndef _UNIX
if (s-Name>1 && *s==':')
*s='_';
- if ((*s==' ' || *s=='.') && IsPathDiv(s[1]))
+ if ((*s==' ' || *s=='.' && s>Name && !IsPathDiv(s[-1]) && s[-1]!='.') && IsPathDiv(s[1]))
*s='_';
#endif
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp
--- old/unrar/version.hpp 2013-09-24 20:08:24.000000000 +0200
+++ new/unrar/version.hpp 2013-11-12 09:00:46.000000000 +0100
@@ -1,6 +1,6 @@
#define RARVER_MAJOR 5
-#define RARVER_MINOR 0
-#define RARVER_BETA 0
-#define RARVER_DAY 22
-#define RARVER_MONTH 8
+#define RARVER_MINOR 1
+#define RARVER_BETA 1
+#define RARVER_DAY 12
+#define RARVER_MONTH 11
#define RARVER_YEAR 2013
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unrar/win32lnk.cpp new/unrar/win32lnk.cpp
--- old/unrar/win32lnk.cpp 2013-09-24 20:08:24.000000000 +0200
+++ new/unrar/win32lnk.cpp 2013-11-12 09:00:46.000000000 +0100
@@ -53,7 +53,6 @@
if (hFile==INVALID_HANDLE_VALUE)
{
ErrHandler.OpenErrorMsg(NULL,Name);
- ErrHandler.SysErrMsg();
ErrHandler.SetErrorCode(RARX_OPEN);
return;
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org