Hello community,

here is the log from the commit of package unrar for openSUSE:Factory:NonFree 
checked in at 2019-04-08 10:40:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/unrar (Old)
 and      /work/SRC/openSUSE:Factory:NonFree/.unrar.new.3908 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "unrar"

Mon Apr  8 10:40:26 2019 rev:79 rq:692078 version:5.7.4

Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/unrar/unrar.changes      2019-03-11 
11:18:11.569279380 +0100
+++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new.3908/unrar.changes    
2019-04-08 10:40:54.787303855 +0200
@@ -1,0 +2,6 @@
+Sun Apr 07 03:31:11 UTC 2019 - sean...@opensuse.org
+
+- Update to version 5.7.4
+  * No upstream changelog
+
+-------------------------------------------------------------------

Old:
----
  unrarsrc-5.7.3.tar.gz

New:
----
  unrarsrc-5.7.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ unrar.spec ++++++
--- /var/tmp/diff_new_pack.tRRUGg/_old  2019-04-08 10:40:55.483304025 +0200
+++ /var/tmp/diff_new_pack.tRRUGg/_new  2019-04-08 10:40:55.499304029 +0200
@@ -18,10 +18,10 @@
 
 # majorversion should match the major version number.
 %define majorversion 5
-%define libsuffix 5_7_3
+%define libsuffix 5_7_4
 
 Name:           unrar
-Version:        5.7.3
+Version:        5.7.4
 Release:        0
 Summary:        A program to extract, test, and view RAR archives
 License:        NonFree

++++++ unrarsrc-5.7.3.tar.gz -> unrarsrc-5.7.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/cmdfilter.cpp new/unrar/cmdfilter.cpp
--- old/unrar/cmdfilter.cpp     2019-02-24 20:07:17.000000000 +0100
+++ new/unrar/cmdfilter.cpp     2019-04-02 10:05:15.000000000 +0200
@@ -128,16 +128,22 @@
 {
   bool ModeOR=false,TimeMods=false;
   const wchar *S=Mod;
-  for (;wcschr(L"MCAOmcao",*S)!=NULL;S++)
+  // Check if any 'mca' modifiers are present, set OR mode if 'o' is present,
+  // skip modifiers and set S to beginning of time string. Be sure to check
+  // *S!=0, because termination 0 is a part of string for wcschr.
+  for (;*S!=0 && wcschr(L"MCAOmcao",*S)!=NULL;S++)
     if (*S=='o' || *S=='O')
       ModeOR=true;
     else
       TimeMods=true;
 
-  if (!TimeMods)
+  if (!TimeMods) // Assume 'm' if no modifiers are specified.
     Mod=L"m";
 
-  for (;wcschr(L"MCAOmcao",*Mod)!=NULL;Mod++)
+  // Set the specified time for every modifier. Be sure to check *Mod!=0,
+  // because termination 0 is a part of string for wcschr. This check is
+  // important when we set Mod to "m" above.
+  for (;*Mod!=0 && wcschr(L"MCAOmcao",*Mod)!=NULL;Mod++)
     switch(toupperw(*Mod))
     {
       case 'M': 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc
--- old/unrar/dll.rc    2019-02-24 20:02:22.000000000 +0100
+++ new/unrar/dll.rc    2019-04-02 09:21:53.000000000 +0200
@@ -2,8 +2,8 @@
 #include <commctrl.h>
 
 VS_VERSION_INFO VERSIONINFO
-FILEVERSION 5, 70, 100, 2983
-PRODUCTVERSION 5, 70, 100, 2983
+FILEVERSION 5, 71, 1, 3019
+PRODUCTVERSION 5, 71, 1, 3019
 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.70.0\0"
-      VALUE "ProductVersion", "5.70.0\0"
+      VALUE "FileVersion", "5.71.1\0"
+      VALUE "ProductVersion", "5.71.1\0"
       VALUE "LegalCopyright", "Copyright � Alexander Roshal 1993-2019\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       2019-02-24 20:07:19.000000000 +0100
+++ new/unrar/extract.cpp       2019-04-02 10:05:16.000000000 +0200
@@ -614,10 +614,14 @@
       }
 #endif
 
-      if (!TestMode && !Arc.BrokenHeader &&
-          (Arc.FileHead.PackSize<<11)>Arc.FileHead.UnpSize &&
+      uint64 Preallocated=0;
+      if (!TestMode && !Arc.BrokenHeader && Arc.FileHead.UnpSize>1000000 &&
+          Arc.FileHead.PackSize*1024>Arc.FileHead.UnpSize &&
           (Arc.FileHead.UnpSize<100000000 || 
Arc.FileLength()>Arc.FileHead.PackSize))
+      {
         CurFile.Prealloc(Arc.FileHead.UnpSize);
+        Preallocated=Arc.FileHead.UnpSize;
+      }
 
       CurFile.SetAllowDelete(!Cmd->KeepBroken);
 
@@ -734,8 +738,9 @@
           (!LinkEntry || Arc.FileHead.RedirType==FSREDIR_FILECOPY && 
LinkSuccess) && 
           (!BrokenFile || Cmd->KeepBroken))
       {
-        // We could preallocate more space that really written to broken file.
-        if (BrokenFile)
+        // We could preallocate more space that really written to broken file
+        // or file with crafted header.
+        if (Preallocated>0 && (BrokenFile || DataIO.CurUnpWrite!=Preallocated))
           CurFile.Truncate();
 
 #if defined(_WIN_ALL) || defined(_EMX)
@@ -969,7 +974,11 @@
     if (!uiGetPassword(UIPASSWORD_FILE,ArcFileName,&Cmd->Password)/* || 
!Cmd->Password.IsSet()*/)
     {
       // Suppress "test is ok" message if user cancelled the password prompt.
-      uiMsg(UIERROR_INCERRCOUNT);
+// 2019.03.23: If some archives are tested ok and prompt is cancelled for 
others,
+// do we really need to suppress "test is ok"? Also if we set an empty password
+// and "Use for all archives" in WinRAR Ctrl+P and skip some encrypted 
archives.
+// We commented out this UIERROR_INCERRCOUNT for now.
+//      uiMsg(UIERROR_INCERRCOUNT);
       return false;
     }
     Cmd->ManualPassword=true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/list.cpp new/unrar/list.cpp
--- old/unrar/list.cpp  2019-02-24 20:07:20.000000000 +0100
+++ new/unrar/list.cpp  2019-04-02 10:05:18.000000000 +0200
@@ -71,6 +71,7 @@
         *VolNumText=0;
         while(Arc.ReadHeader()>0)
         {
+          Wait(); // Allow quit listing with Ctrl+C.
           HEADER_TYPE HeaderType=Arc.GetHeaderType();
           if (HeaderType==HEAD_ENDARC)
           {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/loclang.hpp new/unrar/loclang.hpp
--- old/unrar/loclang.hpp       2019-02-24 20:07:20.000000000 +0100
+++ new/unrar/loclang.hpp       2019-04-02 10:05:18.000000000 +0200
@@ -85,7 +85,7 @@
 #define   MCHelpSwILOG       L"\n  ilog[name]    Log errors to file"
 #define   MCHelpSwINUL       L"\n  inul          Disable all messages"
 #define   MCHelpSwIOFF       L"\n  ioff[n]       Turn PC off after completing 
an operation"
-#define   MCHelpSwISND       L"\n  isnd          Control notification sounds"
+#define   MCHelpSwISND       L"\n  isnd[-]       Control notification sounds"
 #define   MCHelpSwIVER       L"\n  iver          Display the version number"
 #define   MCHelpSwK          L"\n  k             Lock archive"
 #define   MCHelpSwKB         L"\n  kb            Keep broken extracted files"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/threadmisc.cpp new/unrar/threadmisc.cpp
--- old/unrar/threadmisc.cpp    2019-02-24 20:07:23.000000000 +0100
+++ new/unrar/threadmisc.cpp    2019-04-02 10:05:21.000000000 +0200
@@ -53,25 +53,22 @@
 
 ThreadPool* CreateThreadPool()
 {
+#ifdef RARDLL
+  // We use a simple thread pool, which does not allow to add tasks from
+  // different functions and threads in the same time. It is ok for RAR,
+  // but UnRAR.dll can be used in multithreaded environment. So we return
+  // a new pool for UnRAR.dll every time.
+  return new ThreadPool(MaxPoolThreads);
+#else
+  // Reuse the existing pool for RAR.
   CriticalSectionStart(&PoolCreateSync.CritSection); 
-
+  
   if (GlobalPoolUseCount++ == 0)
     GlobalPool=new ThreadPool(MaxPoolThreads);
 
-  // We use a simple thread pool, which does not allow to add tasks from
-  // different functions and threads in the same time. It is ok for RAR,
-  // but UnRAR.dll can be used in multithreaded environment. So if one of
-  // threads requests a copy of global pool and another copy is already
-  // in use, we create and return a new pool instead of existing global.
-  if (GlobalPoolUseCount > 1)
-  {
-    ThreadPool *Pool = new ThreadPool(MaxPoolThreads);
-    CriticalSectionEnd(&PoolCreateSync.CritSection); 
-    return Pool;
-  }
-
   CriticalSectionEnd(&PoolCreateSync.CritSection); 
   return GlobalPool;
+#endif
 }
 
 
@@ -79,17 +76,16 @@
 {
   if (Pool!=NULL)
   {
+#ifdef RARDLL
+    delete Pool;
+#else
     CriticalSectionStart(&PoolCreateSync.CritSection); 
 
     if (Pool==GlobalPool && GlobalPoolUseCount > 0 && --GlobalPoolUseCount == 
0)
       delete GlobalPool;
 
-    // To correctly work in multithreaded environment UnRAR.dll creates
-    // new pools if global pool is already in use. We delete such pools here.
-    if (Pool!=GlobalPool)
-      delete Pool;
-
     CriticalSectionEnd(&PoolCreateSync.CritSection); 
+#endif
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp
--- old/unrar/version.hpp       2019-02-24 20:07:24.000000000 +0100
+++ new/unrar/version.hpp       2019-04-02 10:05:22.000000000 +0200
@@ -1,6 +1,6 @@
 #define RARVER_MAJOR     5
-#define RARVER_MINOR    70
-#define RARVER_BETA      0
-#define RARVER_DAY      25
-#define RARVER_MONTH     2
+#define RARVER_MINOR    71
+#define RARVER_BETA      1
+#define RARVER_DAY       2
+#define RARVER_MONTH     4
 #define RARVER_YEAR   2019


Reply via email to