:spawn_sync instead of popen(). also made the filesystems call
* removed Execute_Command() and replaced it by execute_command(). The latter uses Glib::spawn_sync instead of popen(). also made the filesystems call execute_command rather than calling Glib::spawn_sync themselves.
This commit is contained in:
parent
aad09e9046
commit
045edbbe95
|
@ -1,3 +1,10 @@
|
||||||
|
2006-01-22 Bart Hakvoort <hakvoort@cvs.gnome.org>
|
||||||
|
|
||||||
|
* removed Execute_Command() and replaced it by execute_command().
|
||||||
|
The latter uses Glib::spawn_sync instead of popen().
|
||||||
|
also made the filesystems call execute_command rather than calling
|
||||||
|
Glib::spawn_sync themselves.
|
||||||
|
|
||||||
2006-01-22 Bart Hakvoort <hakvoort@cvs.gnome.org>
|
2006-01-22 Bart Hakvoort <hakvoort@cvs.gnome.org>
|
||||||
|
|
||||||
* implemented Utils::sector_to_unit() and use it in several places
|
* implemented Utils::sector_to_unit() and use it in several places
|
||||||
|
|
|
@ -47,18 +47,17 @@ public:
|
||||||
long cylinder_size ; //see GParted_Core::Resize()
|
long cylinder_size ; //see GParted_Core::Resize()
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int Execute_Command( Glib::ustring command ) ;
|
|
||||||
int execute_command( std::vector<std::string> argv, std::vector<OperationDetails> & operation_details ) ;
|
int execute_command( std::vector<std::string> argv, std::vector<OperationDetails> & operation_details ) ;
|
||||||
|
int execute_command( std::vector<std::string> argv, std::string & output ) ;
|
||||||
|
|
||||||
//those are used in several Set_Used_Sectors()..
|
//those are used in several places..
|
||||||
std::vector<std::string> argv, envp ;
|
std::vector<std::string> argv ;
|
||||||
std::string output, error ;
|
std::string output, error ;
|
||||||
Sector N, S ;
|
Sector N, S ;
|
||||||
unsigned int index ;
|
unsigned int index ;
|
||||||
int exit_status ;
|
int exit_status ;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Glib::ustring cmd_output ;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -26,28 +26,6 @@ FileSystem::FileSystem()
|
||||||
cylinder_size = 0 ;
|
cylinder_size = 0 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
int FileSystem::Execute_Command( Glib::ustring command )
|
|
||||||
{
|
|
||||||
|
|
||||||
//stderr to stdout
|
|
||||||
//command += " 2>&1" ;
|
|
||||||
std::cout << command << std::endl ;
|
|
||||||
cmd_output = command + "\n\n" ;
|
|
||||||
|
|
||||||
char c_buf[ 512 ] ;
|
|
||||||
FILE *f = popen( command .c_str( ), "r" ) ;
|
|
||||||
|
|
||||||
while ( fgets( c_buf, 512, f ) )
|
|
||||||
{
|
|
||||||
//output = Glib::locale_to_utf8( c_buf ) ;
|
|
||||||
//std::cout << output << std::endl ;
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd_output = "" ;
|
|
||||||
|
|
||||||
return pclose( f ) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
int FileSystem::execute_command( std::vector<std::string> argv, std::vector<OperationDetails> & operation_details )
|
int FileSystem::execute_command( std::vector<std::string> argv, std::vector<OperationDetails> & operation_details )
|
||||||
{
|
{
|
||||||
Glib::ustring temp ;
|
Glib::ustring temp ;
|
||||||
|
@ -56,14 +34,10 @@ int FileSystem::execute_command( std::vector<std::string> argv, std::vector<Oper
|
||||||
|
|
||||||
operation_details .push_back( OperationDetails( temp, OperationDetails::NONE ) ) ;
|
operation_details .push_back( OperationDetails( temp, OperationDetails::NONE ) ) ;
|
||||||
|
|
||||||
envp .clear() ;
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".",
|
Glib::spawn_sync( ".",
|
||||||
argv,
|
argv,
|
||||||
envp,
|
|
||||||
Glib::SPAWN_SEARCH_PATH,
|
Glib::SPAWN_SEARCH_PATH,
|
||||||
sigc::slot< void >(),
|
sigc::slot< void >(),
|
||||||
&output,
|
&output,
|
||||||
|
@ -87,4 +61,28 @@ int FileSystem::execute_command( std::vector<std::string> argv, std::vector<Oper
|
||||||
return exit_status ;
|
return exit_status ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int FileSystem::execute_command( std::vector<std::string> argv, std::string & output )
|
||||||
|
{
|
||||||
|
std::vector<std::string> envp ;
|
||||||
|
envp .push_back( "LC_ALL=C" ) ;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Glib::spawn_sync( ".",
|
||||||
|
argv,
|
||||||
|
envp,
|
||||||
|
Glib::SPAWN_SEARCH_PATH,
|
||||||
|
sigc::slot<void>(),
|
||||||
|
&output,
|
||||||
|
&error, //dummy
|
||||||
|
&exit_status) ;
|
||||||
|
}
|
||||||
|
catch ( Glib::Exception & e )
|
||||||
|
{
|
||||||
|
std::cout << e .what() << std::endl ;
|
||||||
|
}
|
||||||
|
|
||||||
|
return exit_status ;
|
||||||
|
}
|
||||||
|
|
||||||
} //GParted
|
} //GParted
|
||||||
|
|
21
src/ext2.cc
21
src/ext2.cc
|
@ -55,28 +55,21 @@ void ext2::Set_Used_Sectors( Partition & partition )
|
||||||
argv .push_back( "-h" ) ;
|
argv .push_back( "-h" ) ;
|
||||||
argv .push_back( partition .partition ) ;
|
argv .push_back( partition .partition ) ;
|
||||||
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
if ( ! execute_command( argv, output ) )
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".", argv, envp, Glib::SPAWN_SEARCH_PATH, sigc::slot< void >(), &output ) ;
|
|
||||||
}
|
|
||||||
catch ( Glib::Exception & e )
|
|
||||||
{
|
|
||||||
std::cout << e .what() << std::endl ;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
index = output .find( "Free blocks:" ) ;
|
index = output .find( "Free blocks:" ) ;
|
||||||
if ( index >= output .length() || sscanf( output.substr( index ) .c_str(), "Free blocks: %Ld", &N ) != 1 )
|
if ( index >= output .length() ||
|
||||||
|
sscanf( output.substr( index ) .c_str(), "Free blocks: %Ld", &N ) != 1 )
|
||||||
N = -1 ;
|
N = -1 ;
|
||||||
|
|
||||||
index = output .find( "Block size:" ) ;
|
index = output .find( "Block size:" ) ;
|
||||||
if ( index >= output.length() || sscanf( output.substr( index ) .c_str(), "Block size: %Ld", &S ) != 1 )
|
if ( index >= output.length() ||
|
||||||
|
sscanf( output.substr( index ) .c_str(), "Block size: %Ld", &S ) != 1 )
|
||||||
S = -1 ;
|
S = -1 ;
|
||||||
|
|
||||||
if ( N > -1 && S > -1 )
|
if ( N > -1 && S > -1 )
|
||||||
partition .Set_Unused( N * S / 512 ) ;
|
partition .Set_Unused( Utils::Round( N * ( S / 512.0 ) ) ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ext2::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool ext2::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
21
src/ext3.cc
21
src/ext3.cc
|
@ -56,28 +56,21 @@ void ext3::Set_Used_Sectors( Partition & partition )
|
||||||
argv .push_back( "-h" ) ;
|
argv .push_back( "-h" ) ;
|
||||||
argv .push_back( partition .partition ) ;
|
argv .push_back( partition .partition ) ;
|
||||||
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
if ( ! execute_command( argv, output ) )
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".", argv, envp, Glib::SPAWN_SEARCH_PATH, sigc::slot< void >(), &output ) ;
|
|
||||||
}
|
|
||||||
catch ( Glib::Exception & e )
|
|
||||||
{
|
|
||||||
std::cout << e .what() << std::endl ;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
index = output .find( "Free blocks:" ) ;
|
index = output .find( "Free blocks:" ) ;
|
||||||
if ( index >= output .length() || sscanf( output.substr( index ) .c_str(), "Free blocks: %Ld", &N ) != 1 )
|
if ( index >= output .length() ||
|
||||||
|
sscanf( output.substr( index ) .c_str(), "Free blocks: %Ld", &N ) != 1 )
|
||||||
N = -1 ;
|
N = -1 ;
|
||||||
|
|
||||||
index = output .find( "Block size:" ) ;
|
index = output .find( "Block size:" ) ;
|
||||||
if ( index >= output.length() || sscanf( output.substr( index ) .c_str(), "Block size: %Ld", &S ) != 1 )
|
if ( index >= output.length() ||
|
||||||
|
sscanf( output.substr( index ) .c_str(), "Block size: %Ld", &S ) != 1 )
|
||||||
S = -1 ;
|
S = -1 ;
|
||||||
|
|
||||||
if ( N > -1 && S > -1 )
|
if ( N > -1 && S > -1 )
|
||||||
partition .Set_Unused( N * S / 512 ) ;
|
partition .Set_Unused( Utils::Round( N * ( S / 512.0 ) ) ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ext3::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool ext3::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
15
src/fat16.cc
15
src/fat16.cc
|
@ -58,18 +58,8 @@ void fat16::Set_Used_Sectors( Partition & partition )
|
||||||
argv .push_back( "-v" ) ;
|
argv .push_back( "-v" ) ;
|
||||||
argv .push_back( partition .partition ) ;
|
argv .push_back( partition .partition ) ;
|
||||||
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
if ( 1 >= execute_command( argv, output ) >= 0 )
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".", argv, envp, Glib::SPAWN_SEARCH_PATH, sigc::slot< void >(), &output ) ;
|
|
||||||
}
|
|
||||||
catch ( Glib::Exception & e )
|
|
||||||
{
|
|
||||||
std::cout << e .what() << std::endl ;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
//free clusters
|
//free clusters
|
||||||
index = output .find( ",", output .find( partition .partition ) + partition .partition .length() ) +1 ;
|
index = output .find( ",", output .find( partition .partition ) + partition .partition .length() ) +1 ;
|
||||||
if ( index < output .length() && sscanf( output .substr( index ) .c_str(), "%Ld/%Ld", &S, &N ) == 2 )
|
if ( index < output .length() && sscanf( output .substr( index ) .c_str(), "%Ld/%Ld", &S, &N ) == 2 )
|
||||||
|
@ -83,7 +73,8 @@ void fat16::Set_Used_Sectors( Partition & partition )
|
||||||
S = -1 ;
|
S = -1 ;
|
||||||
|
|
||||||
if ( N > -1 && S > -1 )
|
if ( N > -1 && S > -1 )
|
||||||
partition .Set_Unused( N * S / 512 ) ;
|
partition .Set_Unused( Utils::Round( N * ( S / 512.0 ) ) ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool fat16::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool fat16::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
17
src/fat32.cc
17
src/fat32.cc
|
@ -57,21 +57,11 @@ void fat32::Set_Used_Sectors( Partition & partition )
|
||||||
argv .push_back( "-v" ) ;
|
argv .push_back( "-v" ) ;
|
||||||
argv .push_back( partition .partition ) ;
|
argv .push_back( partition .partition ) ;
|
||||||
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
if ( 1 >= execute_command( argv, output ) >= 0 )
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".", argv, envp, Glib::SPAWN_SEARCH_PATH, sigc::slot< void >(), &output ) ;
|
|
||||||
}
|
|
||||||
catch ( Glib::Exception & e )
|
|
||||||
{
|
|
||||||
std::cout << e .what() << std::endl ;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
//free clusters
|
//free clusters
|
||||||
index = output .find( ",", output .find( partition .partition ) + partition .partition .length() ) +1 ;
|
index = output .find( ",", output .find( partition .partition ) + partition .partition .length() ) +1 ;
|
||||||
if ( index < output .length() && sscanf( output .substr( index ) .c_str(), "%Ld / %Ld", &S, &N ) == 2 )
|
if ( index < output .length() && sscanf( output .substr( index ) .c_str(), "%Ld/%Ld", &S, &N ) == 2 )
|
||||||
N -= S ;
|
N -= S ;
|
||||||
else
|
else
|
||||||
N = -1 ;
|
N = -1 ;
|
||||||
|
@ -82,7 +72,8 @@ void fat32::Set_Used_Sectors( Partition & partition )
|
||||||
S = -1 ;
|
S = -1 ;
|
||||||
|
|
||||||
if ( N > -1 && S > -1 )
|
if ( N > -1 && S > -1 )
|
||||||
partition .Set_Unused( N * S / 512 ) ;
|
partition .Set_Unused( Utils::Round( N * ( S / 512.0 ) ) ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool fat32::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool fat32::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
37
src/jfs.cc
37
src/jfs.cc
|
@ -65,32 +65,27 @@ FS jfs::get_filesystem_support( )
|
||||||
|
|
||||||
void jfs::Set_Used_Sectors( Partition & partition )
|
void jfs::Set_Used_Sectors( Partition & partition )
|
||||||
{
|
{
|
||||||
char c_buf[ 512 ] ;
|
argv .push_back( "sh" ) ;
|
||||||
FILE *f ;
|
argv .push_back( "-c" ) ;
|
||||||
|
argv .push_back( "echo dm | jfs_debugfs " + partition .partition ) ;
|
||||||
|
|
||||||
Glib::ustring output ;
|
if ( ! execute_command( argv, output ) )
|
||||||
|
|
||||||
//get free sectors..
|
|
||||||
f = popen( ( "echo dm | LC_ALL=C jfs_debugfs " + partition .partition + " | grep dn_nfree" ) .c_str( ), "r" ) ;
|
|
||||||
while ( fgets( c_buf, 512, f ) )
|
|
||||||
{
|
{
|
||||||
output = Glib::locale_to_utf8( c_buf ) ;
|
//blocksize
|
||||||
|
index = output .find( "Block Size:" ) ;
|
||||||
|
if ( index >= output .length() ||
|
||||||
|
sscanf( output .substr( index ) .c_str(), "Block Size: %Ld", &S ) != 1 )
|
||||||
|
S = -1 ;
|
||||||
|
|
||||||
//free sectors
|
//free blocks
|
||||||
if ( output .find( "dn_nfree" ) < output .length( ) )
|
index = output .find( "dn_nfree:" ) ;
|
||||||
{
|
if ( index >= output .length() ||
|
||||||
output = output .substr( output .find( ":" ) +1, output .length( ) ) ;
|
sscanf( output .substr( index ) .c_str(), "dn_nfree: %Lx", &N ) != 1 )
|
||||||
|
N = -1 ;
|
||||||
|
|
||||||
int dec_free_blocks ;
|
if ( S > -1 && N > -1 )
|
||||||
std::istringstream hex_free_blocks( output .substr( 0, output .find( "[" ) ) );
|
partition .Set_Unused( Utils::Round( N * ( S / 512.0 ) ) ) ;
|
||||||
hex_free_blocks >> std::hex >> dec_free_blocks ;
|
|
||||||
|
|
||||||
partition .Set_Unused( dec_free_blocks * 8 ) ;//4096 / 512 (i've been told jfs blocksize is _always_ 4K)
|
|
||||||
|
|
||||||
break ;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
pclose( f ) ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool jfs::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool jfs::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
16
src/ntfs.cc
16
src/ntfs.cc
|
@ -57,24 +57,16 @@ void ntfs::Set_Used_Sectors( Partition & partition )
|
||||||
argv .push_back( "--force" ) ;
|
argv .push_back( "--force" ) ;
|
||||||
argv .push_back( partition .partition ) ;
|
argv .push_back( partition .partition ) ;
|
||||||
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
if ( ! execute_command( argv, output ) )
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".", argv, envp, Glib::SPAWN_SEARCH_PATH, sigc::slot< void >(), &output ) ;
|
|
||||||
}
|
|
||||||
catch ( Glib::Exception & e )
|
|
||||||
{
|
|
||||||
std::cout << e .what() << std::endl ;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
index = output .find( "sectors of free space" ) ;
|
index = output .find( "sectors of free space" ) ;
|
||||||
if ( index >= output .length() || sscanf( output .substr( index ) .c_str(), "sectors of free space : %Ld", &N ) != 1 )
|
if ( index >= output .length() ||
|
||||||
|
sscanf( output .substr( index ) .c_str(), "sectors of free space : %Ld", &N ) != 1 )
|
||||||
N = -1 ;
|
N = -1 ;
|
||||||
|
|
||||||
if ( N > -1 )
|
if ( N > -1 )
|
||||||
partition .Set_Unused( N ) ;
|
partition .Set_Unused( N ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ntfs::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool ntfs::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
|
@ -49,28 +49,21 @@ void reiser4::Set_Used_Sectors( Partition & partition )
|
||||||
argv .push_back( "debugfs.reiser4" ) ;
|
argv .push_back( "debugfs.reiser4" ) ;
|
||||||
argv .push_back( partition .partition ) ;
|
argv .push_back( partition .partition ) ;
|
||||||
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
if ( ! execute_command( argv, output ) )
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".", argv, envp, Glib::SPAWN_SEARCH_PATH, sigc::slot< void >(), &output ) ;
|
|
||||||
}
|
|
||||||
catch ( Glib::Exception & e )
|
|
||||||
{
|
|
||||||
std::cout << e .what() << std::endl ;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
index = output .find( "free blocks" ) ;
|
index = output .find( "free blocks" ) ;
|
||||||
if ( index >= output .length() || sscanf( output.substr( index ) .c_str(), "free blocks: %Ld", &N ) != 1 )
|
if ( index >= output .length() ||
|
||||||
|
sscanf( output.substr( index ) .c_str(), "free blocks: %Ld", &N ) != 1 )
|
||||||
N = -1 ;
|
N = -1 ;
|
||||||
|
|
||||||
index = output .find( "blksize" ) ;
|
index = output .find( "blksize" ) ;
|
||||||
if ( index >= output.length() || sscanf( output.substr( index ) .c_str(), "blksize: %Ld", &S ) != 1 )
|
if ( index >= output.length() ||
|
||||||
|
sscanf( output.substr( index ) .c_str(), "blksize: %Ld", &S ) != 1 )
|
||||||
S = -1 ;
|
S = -1 ;
|
||||||
|
|
||||||
if ( N > -1 && S > -1 )
|
if ( N > -1 && S > -1 )
|
||||||
partition .Set_Unused( N * S / 512 ) ;
|
partition .Set_Unused( Utils::Round( N * ( S / 512.0 ) ) ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool reiser4::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool reiser4::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
|
@ -59,28 +59,21 @@ void reiserfs::Set_Used_Sectors( Partition & partition )
|
||||||
argv .push_back( "debugreiserfs" ) ;
|
argv .push_back( "debugreiserfs" ) ;
|
||||||
argv .push_back( partition .partition ) ;
|
argv .push_back( partition .partition ) ;
|
||||||
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
if ( ! execute_command( argv, output ) )
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".", argv, envp, Glib::SPAWN_SEARCH_PATH, sigc::slot< void >(), &output ) ;
|
|
||||||
}
|
|
||||||
catch ( Glib::Exception & e )
|
|
||||||
{
|
|
||||||
std::cout << e .what() << std::endl ;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
index = output .find( "Blocksize" ) ;
|
index = output .find( "Blocksize" ) ;
|
||||||
if ( index >= output .length() || sscanf( output .substr( index ) .c_str(), "Blocksize: %Ld", &S ) != 1 )
|
if ( index >= output .length() ||
|
||||||
|
sscanf( output .substr( index ) .c_str(), "Blocksize: %Ld", &S ) != 1 )
|
||||||
S = -1 ;
|
S = -1 ;
|
||||||
|
|
||||||
index = output .find( ":", output .find( "Free blocks" ) ) +1 ;
|
index = output .find( ":", output .find( "Free blocks" ) ) +1 ;
|
||||||
if ( index >= output .length() || sscanf( output .substr( index ) .c_str(), "%Ld", &N ) != 1 )
|
if ( index >= output .length() ||
|
||||||
|
sscanf( output .substr( index ) .c_str(), "%Ld", &N ) != 1 )
|
||||||
N = -1 ;
|
N = -1 ;
|
||||||
|
|
||||||
if ( N > -1 && S > -1 )
|
if ( N > -1 && S > -1 )
|
||||||
partition .Set_Unused( N * S / 512 ) ;
|
partition .Set_Unused( Utils::Round( N * ( S / 512.0 ) ) ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool reiserfs::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool reiserfs::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
15
src/xfs.cc
15
src/xfs.cc
|
@ -71,18 +71,8 @@ void xfs::Set_Used_Sectors( Partition & partition )
|
||||||
argv .push_back( "-r" ) ;
|
argv .push_back( "-r" ) ;
|
||||||
argv .push_back( partition .partition ) ;
|
argv .push_back( partition .partition ) ;
|
||||||
|
|
||||||
envp .push_back( "LC_ALL=C" ) ;
|
if ( ! execute_command( argv, output ) )
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
Glib::spawn_sync( ".", argv, envp, Glib::SPAWN_SEARCH_PATH, sigc::slot< void >(), &output ) ;
|
|
||||||
}
|
|
||||||
catch ( Glib::Exception & e )
|
|
||||||
{
|
|
||||||
std::cout << e .what() << std::endl ;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
//blocksize
|
//blocksize
|
||||||
if ( sscanf( output .c_str(), "blocksize = %Ld", &S ) != 1 )
|
if ( sscanf( output .c_str(), "blocksize = %Ld", &S ) != 1 )
|
||||||
S = -1 ;
|
S = -1 ;
|
||||||
|
@ -93,7 +83,8 @@ void xfs::Set_Used_Sectors( Partition & partition )
|
||||||
N = -1 ;
|
N = -1 ;
|
||||||
|
|
||||||
if ( N > -1 && S > -1 )
|
if ( N > -1 && S > -1 )
|
||||||
partition .Set_Unused( N * S / 512 ) ;
|
partition .Set_Unused( Utils::Round( N * ( S / 512.0 ) ) ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool xfs::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
bool xfs::Create( const Partition & new_partition, std::vector<OperationDetails> & operation_details )
|
||||||
|
|
Loading…
Reference in New Issue