~thopiekar/zypper/libzypp-manual-import

« back to all changes in this revision

Viewing changes to zypp/PathInfo.cc

  • Committer: Thomas-Karl Pietrowski
  • Date: 2015-08-15 15:59:50 UTC
  • Revision ID: thopiekar@googlemail.com-20150815155950-j66qn38efmvn289t
syncing with "changes 15.13.0 (11)"  #9a0aca7e3a21d768491b141a8ae86ef0c3fbc227
* https://github.com/openSUSE/libzypp/commit/9a0aca7e3a21d768491b141a8ae86ef0c3fbc227

Show diffs side-by-side

added added

removed removed

Lines of Context:
241
241
     */
242
242
    unsigned int PathInfo::devMajor() const
243
243
    {
244
 
      return isBlk() || isChr() ? ::major(statbuf_C.st_rdev) : 0;
 
244
      return isBlk() || isChr() ? major(statbuf_C.st_rdev) : 0;
245
245
    }
246
246
 
247
247
    /******************************************************************
251
251
     */
252
252
    unsigned int PathInfo::devMinor() const
253
253
    {
254
 
      return isBlk() || isChr() ? ::minor(statbuf_C.st_rdev) : 0;
 
254
      return isBlk() || isChr() ? minor(statbuf_C.st_rdev) : 0;
255
255
    }
256
256
 
257
 
    unsigned int PathInfo::major() const
258
 
    { INT << "Cleanup the code: This method is deprecated" << endl; return devMajor(); }
259
 
    unsigned int PathInfo::minor() const
260
 
    { INT << "Cleanup the code: This method is deprecated" << endl; return devMinor(); }
261
 
 
262
257
    /******************************************************************
263
258
     **
264
259
     ** FUNCTION NAME : operator<<
387
382
    //  METHOD NAME : recursive_rmdir
388
383
    //  METHOD TYPE : int
389
384
    //
390
 
    static int recursive_rmdir_1( const Pathname & dir )
 
385
    static int recursive_rmdir_1( const Pathname & dir, bool removeDir = true )
391
386
    {
392
387
      DIR * dp;
393
388
      struct dirent * d;
413
408
      }
414
409
      closedir( dp );
415
410
 
416
 
      if ( ::rmdir( dir.c_str() ) < 0 )
 
411
      if ( removeDir && ::rmdir( dir.c_str() ) < 0 )
417
412
        return errno;
418
413
 
419
414
      return 0;
453
448
        return _Log_Result( ENOTDIR );
454
449
      }
455
450
 
456
 
      string cmd( str::form( "cd '%s' && rm -rf --preserve-root -- *", path.asString().c_str() ) );
457
 
      ExternalProgram prog( cmd, ExternalProgram::Stderr_To_Stdout );
458
 
      for ( string output( prog.receiveLine() ); output.length(); output = prog.receiveLine() ) {
459
 
        MIL << "  " << output;
460
 
      }
461
 
      int ret = prog.close();
462
 
      return _Log_Result( ret, "returned" );
 
451
      return _Log_Result( recursive_rmdir_1( path, false/* don't remove path itself */ ) );
463
452
    }
464
453
 
465
454
    ///////////////////////////////////////////////////////////////////