Imported Upstream version 15.21.1 93/94693/1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 1 Nov 2016 02:08:06 +0000 (11:08 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 1 Nov 2016 02:08:07 +0000 (11:08 +0900)
Change-Id: I880cc25f6ba1346b7ec0f177efb6ee287b2dad9d
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
VERSION.cmake
libzypp.spec.cmake
package/libzypp.changes
po/zypp-po.tar.bz2
zypp/DiskUsageCounter.cc
zypp/base/String.cc
zypp/base/String.h

index 68049d5..93a5734 100644 (file)
@@ -61,8 +61,8 @@
 SET(LIBZYPP_MAJOR "15")
 SET(LIBZYPP_COMPATMINOR "19")
 SET(LIBZYPP_MINOR "21")
-SET(LIBZYPP_PATCH "0")
+SET(LIBZYPP_PATCH "1")
 #
-# LAST RELEASED: 15.21.0 (19)
+# LAST RELEASED: 15.21.1 (19)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
index a190eec..4103d57 100644 (file)
@@ -63,7 +63,6 @@ BuildRequires:  gcc-c++ >= 4.6
 %endif
 BuildRequires:  gettext-devel
 BuildRequires:  graphviz
-BuildRequires:  graphviz-gnome
 BuildRequires:  libxml2-devel
 %if 0%{?suse_version} != 1110
 # No libproxy on SLES
index b0de6e7..c70a104 100644 (file)
@@ -1,4 +1,17 @@
 -------------------------------------------------------------------
+Fri Jan 29 11:40:51 CET 2016 - ma@suse.de
+
+- Don't buildrequire graphviz-gnome (bsc#964150)
+- Unwanted btrfs subvolumes must be filtered by device (not fsid)
+  (fixes #54)
+- version 15.21.1 (19)
+
+-------------------------------------------------------------------
+Thu Jan 21 01:13:29 CET 2016 - ma@suse.de
+
+- Update zypp-po.tar.bz2
+
+-------------------------------------------------------------------
 Wed Jan 20 17:12:42 CET 2016 - ma@suse.de
 
 - Filter unwanted btrfs subvolumes (fixes #54, closes #55, bnc#949945)
index 9287f04..b784d53 100644 (file)
Binary files a/po/zypp-po.tar.bz2 and b/po/zypp-po.tar.bz2 differ
index f64b0e6..f1466bb 100644 (file)
@@ -127,7 +127,7 @@ namespace zypp
   {
     DiskUsageCounter::MountPointSet ret;
 
-    typedef std::map<ulong, MountPoint> Btrfsfilter;
+    typedef std::map<std::string, MountPoint> Btrfsfilter;
     Btrfsfilter btrfsfilter;   // see btrfs hack below
 
       std::ifstream procmounts( "/proc/mounts" );
@@ -301,11 +301,11 @@ namespace zypp
              {
                // HACK:
                // Collect just the top/1st mountpoint of each btrfs volume
-               // (by file system ID). This filters away nested subvolumes
+               // (by device). This filters away nested subvolumes
                // which otherwise break per package disk usage computation.
                // FIX: Computation must learn to handle multiple mount points
                // contributing to the same file system.
-               MountPoint & bmp( btrfsfilter[sb.f_fsid] );
+               MountPoint & bmp( btrfsfilter[words[0]] );
                if ( bmp.fstype.empty() )       // 1st occurance
                {
                  bmp = DiskUsageCounter::MountPoint( mp, words[2], sb.f_bsize,
index fb7bd35..be0bb64 100644 (file)
@@ -173,11 +173,15 @@ namespace zypp
      **      FUNCTION TYPE : std::string
     */
     std::string toLower( const std::string & s )
+    { return toLower( std::string(s) ); }
+
+    std::string toLower( std::string && s )
     {
-      if ( s.empty() )
-        return s;
+      std::string ret( std::move(s) );
+
+      if ( ret.empty() )
+        return ret;
 
-      std::string ret( s );
       for ( std::string::size_type i = 0; i < ret.length(); ++i )
         {
           if ( isupper( ret[i] ) )
@@ -192,11 +196,15 @@ namespace zypp
      **      FUNCTION TYPE : std::string
     */
     std::string toUpper( const std::string & s )
+    { return toUpper( std::string(s) ); }
+
+    std::string toUpper( std::string && s )
     {
-      if ( s.empty() )
-        return s;
+      std::string ret( std::move(s) );
+
+      if ( ret.empty() )
+        return ret;
 
-      std::string ret( s );
       for ( std::string::size_type i = 0; i < ret.length(); ++i )
         {
           if ( islower( ret[i] ) )
@@ -211,29 +219,36 @@ namespace zypp
      **      FUNCTION TYPE : std::string
     */
     std::string trim( const std::string & s, const Trim trim_r )
+    { return trim( std::string(s), trim_r ); }
+
+    std::string trim( std::string && s, const Trim trim_r )
     {
-      if ( s.empty() || trim_r == NO_TRIM )
-        return s;
+      std::string ret( std::move(s) );
 
-      std::string ret( s );
+      if ( ret.empty() || trim_r == NO_TRIM )
+        return ret;
 
       if ( trim_r & L_TRIM )
-        {
-          std::string::size_type p = ret.find_first_not_of( " \t\n" );
-          if ( p == std::string::npos )
-            return std::string();
-
-          ret = ret.substr( p );
-        }
+      {
+       std::string::size_type p = ret.find_first_not_of( " \t\n" );
+       if ( p == std::string::npos )
+       {
+         ret.clear();
+         return ret;
+       }
+       ret.erase( 0, p );
+      }
 
       if ( trim_r & R_TRIM )
-        {
-          std::string::size_type p = ret.find_last_not_of( " \t\n" );
-          if ( p == std::string::npos )
-            return std::string();
-
-          ret = ret.substr( 0, p+1 );
-        }
+      {
+       std::string::size_type p = ret.find_last_not_of( " \t\n" );
+       if ( p == std::string::npos )
+       {
+         ret.clear();
+         return ret;
+       }
+       ret = ret.erase( p+1 );
+      }
 
       return ret;
     }
index 04ed542..7915f8b 100644 (file)
@@ -936,6 +936,7 @@ namespace zypp
      * \todo improve
     */
     std::string toLower( const std::string & s );
+    std::string toLower( std::string && s );
     /** \overload */
     inline std::string toLower( const char * s )
     { return( s ? toLower( std::string(s) ) : std::string() ); }
@@ -944,6 +945,7 @@ namespace zypp
      * \todo improve
     */
     std::string toUpper( const std::string & s );
+    std::string toUpper( std::string && s );
     /** \overload */
     inline std::string toUpper( const char * s )
     { return( s ? toUpper( std::string(s) ) : std::string() ); }
@@ -980,12 +982,17 @@ namespace zypp
     };
 
     std::string trim( const std::string & s, const Trim trim_r = TRIM );
+    std::string trim( std::string && s, const Trim trim_r = TRIM );
 
     inline std::string ltrim( const std::string & s )
     { return trim( s, L_TRIM ); }
+    inline std::string ltrim( std::string && s )
+    { return trim( std::move(s), L_TRIM ); }
 
     inline std::string rtrim( const std::string & s )
     { return trim( s, R_TRIM ); }
+    inline std::string rtrim( std::string && s )
+    { return trim( std::move(s), R_TRIM ); }
     //@}
 
     std::string stripFirstWord( std::string & line, const bool ltrim_first = true );