diff --git a/ChangeLog b/ChangeLog index 4e9d9d97..43cbd8f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2005-09-13 Bart Hakvoort + * lots of stuff and cleanups, including fixing getting used/unused space of hfs/hfs+/fat16/fat32 + * also fixes bug #161362 + 2005-08-31 Bart Hakvoort * src/Dialog_Filesystems.cc: at startup closebutton is focused (#308381) diff --git a/compose/ucompose.hpp b/compose/ucompose.hpp index 7d529c27..fbdc2697 100644 --- a/compose/ucompose.hpp +++ b/compose/ucompose.hpp @@ -179,8 +179,8 @@ namespace UStringPrivate : arg_no(1) { #if __GNUC__ >= 3 - //plors: i've uncommented this one since it caused a crasher at line 124 for some locales (e.g. nl_BE) - //os.imbue(std::locale("")); // use the user's locale for the stream + //see #157871 + //os.imbue(std::locale("")); // use the user's locale for the stream #endif std::string::size_type b = 0, i = 0; diff --git a/include/GParted_Core.h b/include/GParted_Core.h index d2afb17d..34e6272a 100644 --- a/include/GParted_Core.h +++ b/include/GParted_Core.h @@ -29,6 +29,7 @@ #include "../include/xfs.h" #include "../include/jfs.h" #include "../include/hfs.h" +#include "../include/hfsplus.h" #include "../include/reiser4.h" #include diff --git a/include/Utils.h b/include/Utils.h index 0ae08c90..7bd5a347 100644 --- a/include/Utils.h +++ b/include/Utils.h @@ -71,11 +71,6 @@ inline long Sector_To_MB( Sector sectors ) return Round( sectors * 0.000488281250 ) ; // that's what 512/1024/1024 gives you :) } -inline Sector Abs( Sector sectors ) -{ - return sectors < 0 ? sectors - 2*sectors : sectors ; -} - inline Gtk::Label * mk_label( const Glib::ustring & text, bool use_markup = true, bool align_left = true, bool wrap = false, const Glib::ustring & text_color = "black" ) { Gtk::Label * label = manage( new Gtk::Label( text ) ) ; @@ -96,9 +91,10 @@ inline Gtk::Label * mk_label( const Glib::ustring & text, bool use_markup = true return label ; } -inline Glib::ustring num_to_str( Sector number ) +inline Glib::ustring num_to_str( Sector number, bool use_C_locale = false ) { - std::stringstream ss; + std::stringstream ss ; + //ss.imbue( std::locale( use_C_locale ? "C" : "" ) ) ; see #157871 ss << number ; return ss .str( ) ; } @@ -128,6 +124,7 @@ inline Glib::ustring Get_Color( const Glib::ustring & filesystem ) else if ( filesystem == "jfs" ) return "#E0C39E" ; else if ( filesystem == "hfs" ) return "#E0B6AF" ; + else if ( filesystem == "hfs+" ) return "#C0A39E" ; else if ( filesystem == "ufs" ) return "#D1940C" ; diff --git a/include/hfsplus.h b/include/hfsplus.h new file mode 100644 index 00000000..30bd3742 --- /dev/null +++ b/include/hfsplus.h @@ -0,0 +1,41 @@ +/* Copyright (C) 2004 Bart + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + + +#ifndef HFSPLUS +#define HFSPLUS + +#include "../include/FileSystem.h" + +namespace GParted +{ + +class hfsplus : public FileSystem +{ +public: + FS get_filesystem_support( ) ; + void Set_Used_Sectors( Partition & partition ) ; + bool Create( const Partition & new_partition ) ; + bool Resize( const Partition & partition_new, bool fill_partition = false ) ; + bool Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) ; + bool Check_Repair( const Partition & partition ) ; + int get_estimated_time( long MB_to_Consider ) ; +}; + +} //GParted + +#endif //HFSPLUS diff --git a/src/GParted_Core.cc b/src/GParted_Core.cc index 3a69fda9..a8b021af 100644 --- a/src/GParted_Core.cc +++ b/src/GParted_Core.cc @@ -43,6 +43,9 @@ void GParted_Core::find_supported_filesystems( ) hfs fs_hfs; FILESYSTEMS .push_back( fs_hfs .get_filesystem_support( ) ) ; + hfsplus fs_hfsplus; + FILESYSTEMS .push_back( fs_hfsplus .get_filesystem_support( ) ) ; + jfs fs_jfs; FILESYSTEMS .push_back( fs_jfs .get_filesystem_support( ) ) ; @@ -311,7 +314,7 @@ int GParted_Core::get_estimated_time( const Operation & operation ) case GParted::RESIZE_MOVE: set_proper_filesystem( operation .partition_new .filesystem ) ; if ( p_filesystem ) - return p_filesystem ->get_estimated_time( Abs( operation .partition_original .Get_Length_MB( ) - operation .partition_new .Get_Length_MB( ) ) ) ; + return p_filesystem ->get_estimated_time( std::abs( operation .partition_original .Get_Length_MB( ) - operation .partition_new .Get_Length_MB( ) ) ) ; break ; @@ -736,6 +739,8 @@ void GParted_Core::set_proper_filesystem( const Glib::ustring & filesystem ) p_filesystem = new fat32( ) ; else if ( filesystem == "hfs" ) p_filesystem = new hfs( ) ; + else if ( filesystem == "hfs+" ) + p_filesystem = new hfsplus( ) ; else if ( filesystem == "jfs" ) p_filesystem = new jfs( ) ; else if ( filesystem == "linux-swap" ) diff --git a/src/Makefile.am b/src/Makefile.am index 83b9944f..0637c46d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -37,6 +37,7 @@ gparted_SOURCES = \ fat16.cc\ fat32.cc\ hfs.cc\ + hfsplus.cc\ jfs.cc\ linux_swap.cc\ main.cc\ diff --git a/src/Operation.cc b/src/Operation.cc index f0e5f613..138bbe7d 100644 --- a/src/Operation.cc +++ b/src/Operation.cc @@ -60,7 +60,7 @@ Glib::ustring Operation::Get_String( ) /*TO TRANSLATORS: looks like Create Logical Partition #1 (ntfs, 2345 MB) on /dev/hda */ return String::ucompose( _("Create %1 #%2 (%3, %4 MB) on %5"), temp, partition_new.partition_number, partition_new.filesystem , partition_new .Get_Length_MB( ), device .path ) ; case RESIZE_MOVE: //if startsector has changed >= 1 MB we consider it a move - diff = Abs( partition_new .sector_start - partition_original .sector_start ) ; + diff = std::abs( partition_new .sector_start - partition_original .sector_start ) ; if ( diff >= MEGABYTE ) { if ( partition_new .sector_start > partition_original .sector_start ) @@ -70,8 +70,8 @@ Glib::ustring Operation::Get_String( ) } //check if size has changed ( we only consider changes >= 1 MB ) - diff = Abs( (partition_original .sector_end - partition_original .sector_start) - (partition_new .sector_end - partition_new .sector_start) ) ; - + diff = std::abs( (partition_original .sector_end - partition_original .sector_start) - (partition_new .sector_end - partition_new .sector_start) ) ; + if ( diff >= MEGABYTE ) { if ( temp .empty( ) ) diff --git a/src/ext2.cc b/src/ext2.cc index 418f78e4..e2133734 100644 --- a/src/ext2.cc +++ b/src/ext2.cc @@ -85,17 +85,17 @@ bool ext2::Create( const Partition & new_partition ) bool ext2::Resize( const Partition & partition_new, bool fill_partition ) { - Glib::ustring str_temp = "LC_NUMERIC=C resize2fs " + partition_new .partition ; + Glib::ustring str_temp = "resize2fs " + partition_new .partition ; if ( ! fill_partition ) - str_temp += " " + num_to_str( partition_new .Get_Length_MB( ) - cylinder_size ) + "M" ; + str_temp += " " + num_to_str( partition_new .Get_Length_MB( ) - cylinder_size, true ) + "M" ; return ! Execute_Command( str_temp ) ; } bool ext2::Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) { - if ( ! Execute_Command( "LC_NUMERIC=C dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ) + if ( ! Execute_Command( "dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ) { Partition partition ; partition .partition = dest_part_path ; diff --git a/src/ext3.cc b/src/ext3.cc index b118563e..6ca74940 100644 --- a/src/ext3.cc +++ b/src/ext3.cc @@ -85,17 +85,17 @@ bool ext3::Create( const Partition & new_partition ) bool ext3::Resize( const Partition & partition_new, bool fill_partition ) { - Glib::ustring str_temp = "LC_NUMERIC=C resize2fs " + partition_new .partition ; + Glib::ustring str_temp = "resize2fs " + partition_new .partition ; if ( ! fill_partition ) - str_temp += " " + num_to_str( partition_new .Get_Length_MB( ) - cylinder_size ) + "M" ; + str_temp += " " + num_to_str( partition_new .Get_Length_MB( ) - cylinder_size, true ) + "M" ; return ! Execute_Command( str_temp ) ; } bool ext3::Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) { - if ( ! Execute_Command( "LC_NUMERIC=C dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ) + if ( ! Execute_Command( "dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ) { Partition partition ; partition .partition = dest_part_path ; diff --git a/src/fat16.cc b/src/fat16.cc index 3d047e5f..8637e763 100644 --- a/src/fat16.cc +++ b/src/fat16.cc @@ -26,14 +26,16 @@ FS fat16::get_filesystem_support( ) FS fs ; fs .filesystem = "fat16" ; - fs .read = true ; //provided by libparted - + //find out if we can create fat16 filesystems if ( ! system( "which mkdosfs 1>/dev/null 2>/dev/null" ) ) fs .create = true ; if ( ! system( "which dosfsck 1>/dev/null 2>/dev/null" ) ) + { fs .check = true ; + fs .read = true ; + } //resizing of start and endpoint are provided by libparted fs .grow = true ; @@ -43,7 +45,7 @@ FS fat16::get_filesystem_support( ) if ( ! system( "which dd 1>/dev/null 2>/dev/null" ) ) fs .copy = true ; - fs .MIN = 32 ; + fs .MIN = 16 ; fs .MAX = 4096 ; return fs ; @@ -51,31 +53,33 @@ FS fat16::get_filesystem_support( ) void fat16::Set_Used_Sectors( Partition & partition ) { - PedFileSystem *fs = NULL; - PedConstraint *constraint = NULL; - PedPartition *c_part = NULL ; + char c_buf[ 512 ] ; + FILE *f ; - if ( disk ) + Glib::ustring output ; + Sector free_clusters = -1, bytes_per_cluster = -1 ; + + //get free blocks.. + f = popen( ( "LC_ALL=C echo 2 | dosfsck -v " + partition .partition ) .c_str( ), "r" ) ; + while ( fgets( c_buf, 512, f ) ) { - c_part = ped_disk_get_partition_by_sector( disk, (partition .sector_end + partition .sector_start) / 2 ) ; - if ( c_part ) + output = Glib::locale_to_utf8( c_buf ) ; + + //bytes per cluster + if ( output .find( "bytes per cluster" ) < output .length( ) ) + bytes_per_cluster = atol( output .substr( 0, output .find( "b" ) ) .c_str( ) ) ; + + //free clusters + if ( output .find( partition .partition ) < output .length( ) ) { - fs = ped_file_system_open( & c_part ->geom ); - - if ( fs ) - { - constraint = ped_file_system_get_resize_constraint ( fs ) ; - if ( constraint ) - { - partition .Set_Unused( (partition .sector_end - partition .sector_start) - constraint ->min_size ) ; - - ped_constraint_destroy ( constraint ); - } - - ped_file_system_close( fs ) ; - } + output = output .substr( output .find( "," ) +2, output .length( ) ) ; + free_clusters = atol( output .substr( output .find( "/" ) +1, output .find( " " ) ) .c_str( ) ) - atol( output .substr( 0, output .find( "/" ) ) .c_str( ) ) ; } } + pclose( f ) ; + + if ( free_clusters > -1 && bytes_per_cluster > -1 ) + partition .Set_Unused( free_clusters * bytes_per_cluster / 512 ) ; } bool fat16::Create( const Partition & new_partition ) @@ -91,7 +95,7 @@ bool fat16::Resize( const Partition & partition_new, bool fill_partition ) bool fat16::Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) { - return ! Execute_Command( "LC_NUMERIC=C dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ; + return ! Execute_Command( "dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ; } bool fat16::Check_Repair( const Partition & partition ) diff --git a/src/fat32.cc b/src/fat32.cc index 432827f3..184aeff8 100644 --- a/src/fat32.cc +++ b/src/fat32.cc @@ -26,14 +26,16 @@ FS fat32::get_filesystem_support( ) FS fs ; fs .filesystem = "fat32" ; - fs .read = true ; //provided by libparted - + //find out if we can create fat32 filesystems if ( ! system( "which mkdosfs 1>/dev/null 2>/dev/null" ) ) fs .create = true ; if ( ! system( "which dosfsck 1>/dev/null 2>/dev/null" ) ) + { fs .check = true ; + fs .read = true ; + } //resizing of start and endpoint are provided by libparted fs .grow = true ; @@ -43,38 +45,40 @@ FS fat32::get_filesystem_support( ) if ( ! system( "which dd 1>/dev/null 2>/dev/null" ) ) fs .copy = true ; - fs .MIN = 256 ; + fs .MIN = 32 ; //smaller fs'es will cause windows scandisk to fail.. return fs ; } void fat32::Set_Used_Sectors( Partition & partition ) { - PedFileSystem *fs = NULL; - PedConstraint *constraint = NULL; - PedPartition *c_part = NULL ; + char c_buf[ 512 ] ; + FILE *f ; - if ( disk ) + Glib::ustring output ; + Sector free_clusters = -1, bytes_per_cluster = -1 ; + + //get free blocks.. + f = popen( ( "LC_ALL=C echo 2 | dosfsck -v " + partition .partition ) .c_str( ), "r" ) ; + while ( fgets( c_buf, 512, f ) ) { - c_part = ped_disk_get_partition_by_sector( disk, (partition .sector_end + partition .sector_start) / 2 ) ; - if ( c_part ) + output = Glib::locale_to_utf8( c_buf ) ; + + //bytes per cluster + if ( output .find( "bytes per cluster" ) < output .length( ) ) + bytes_per_cluster = atol( output .substr( 0, output .find( "b" ) ) .c_str( ) ) ; + + //free clusters + if ( output .find( partition .partition ) < output .length( ) ) { - fs = ped_file_system_open( & c_part ->geom ); - - if ( fs ) - { - constraint = ped_file_system_get_resize_constraint ( fs ) ; - if ( constraint ) - { - partition .Set_Unused( (partition .sector_end - partition .sector_start) - constraint ->min_size ) ; - - ped_constraint_destroy ( constraint ); - } - - ped_file_system_close( fs ) ; - } + output = output .substr( output .find( "," ) +2, output .length( ) ) ; + free_clusters = atol( output .substr( output .find( "/" ) +1, output .find( " " ) ) .c_str( ) ) - atol( output .substr( 0, output .find( "/" ) ) .c_str( ) ) ; } } + pclose( f ) ; + + if ( free_clusters > -1 && bytes_per_cluster > -1 ) + partition .Set_Unused( free_clusters * bytes_per_cluster / 512 ) ; } bool fat32::Create( const Partition & new_partition ) @@ -90,7 +94,7 @@ bool fat32::Resize( const Partition & partition_new, bool fill_partition ) bool fat32::Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) { - return ! Execute_Command( "LC_NUMERIC=C dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ; + return ! Execute_Command( "dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ; } bool fat32::Check_Repair( const Partition & partition ) diff --git a/src/hfs.cc b/src/hfs.cc index 07ed7887..b6909a82 100644 --- a/src/hfs.cc +++ b/src/hfs.cc @@ -24,10 +24,10 @@ namespace GParted FS hfs::get_filesystem_support( ) { FS fs ; - + fs .filesystem = "hfs" ; - if ( ! system( "which hfs 1>/dev/null 2>/dev/null" ) ) - fs .read = true ; + + fs .read = true ; //provided by libparted if ( ! system( "which hformat 1>/dev/null 2>/dev/null" ) ) fs .create = true ; @@ -42,26 +42,31 @@ FS hfs::get_filesystem_support( ) void hfs::Set_Used_Sectors( Partition & partition ) { - char c_buf[ 512 ] ; - FILE *f ; + PedFileSystem *fs = NULL; + PedConstraint *constraint = NULL; + PedPartition *c_part = NULL ; - Glib::ustring output ; - - //get free bytes.. - f = popen( ( "echo 'quit' | LC_ALL=C hfs " + partition .partition ) .c_str( ), "r" ) ; - while ( fgets( c_buf, 512, f ) ) + if ( disk ) { - output = Glib::locale_to_utf8( c_buf ) ; - - if ( output .find( "bytes free" ) < output .length( ) ) + c_part = ped_disk_get_partition_by_sector( disk, (partition .sector_end + partition .sector_start) / 2 ) ; + if ( c_part ) { - output = output .substr( 0, output .find( " bytes free" ) ) ; - - partition .Set_Unused( atol( (output .substr( output .find_last_of( ' ' ) ) ) .c_str( ) ) / 512 ) ; - break ; + fs = ped_file_system_open( & c_part ->geom ); + + if ( fs ) + { + constraint = ped_file_system_get_resize_constraint ( fs ) ; + if ( constraint ) + { + partition .Set_Unused( (partition .sector_end - partition .sector_start) - constraint ->min_size ) ; + + ped_constraint_destroy ( constraint ); + } + + ped_file_system_close( fs ) ; + } } } - pclose( f ) ; } bool hfs::Create( const Partition & new_partition ) @@ -76,7 +81,7 @@ bool hfs::Resize( const Partition & partition_new, bool fill_partition ) bool hfs::Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) { - return ! Execute_Command( "LC_NUMERIC=C dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ; + return ! Execute_Command( "dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ; } bool hfs::Check_Repair( const Partition & partition ) diff --git a/src/hfsplus.cc b/src/hfsplus.cc new file mode 100644 index 00000000..c1e3086f --- /dev/null +++ b/src/hfsplus.cc @@ -0,0 +1,92 @@ +/* Copyright (C) 2004 Bart + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + + +#include "../include/hfsplus.h" + +namespace GParted +{ + +FS hfsplus::get_filesystem_support( ) +{ + FS fs ; + + fs .filesystem = "hfs+" ; + + fs .read = true ; //provided by libparted + + return fs ; +} + +void hfsplus::Set_Used_Sectors( Partition & partition ) +{ + PedFileSystem *fs = NULL; + PedConstraint *constraint = NULL; + PedPartition *c_part = NULL ; + + if ( disk ) + { + c_part = ped_disk_get_partition_by_sector( disk, (partition .sector_end + partition .sector_start) / 2 ) ; + if ( c_part ) + { + fs = ped_file_system_open( & c_part ->geom ); + + if ( fs ) + { + constraint = ped_file_system_get_resize_constraint ( fs ) ; + if ( constraint ) + { + partition .Set_Unused( (partition .sector_end - partition .sector_start) - constraint ->min_size ) ; + + ped_constraint_destroy ( constraint ); + } + + ped_file_system_close( fs ) ; + } + } + } +} + +bool hfsplus::Create( const Partition & new_partition ) +{ + return true ; +} + +bool hfsplus::Resize( const Partition & partition_new, bool fill_partition ) +{ + return true ; +} + +bool hfsplus::Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) +{ + return true ; +} + +bool hfsplus::Check_Repair( const Partition & partition ) +{ + return true ; +} + +int hfsplus::get_estimated_time( long MB_to_Consider ) +{ + return -1 ; +} + + +} //GParted + + diff --git a/src/jfs.cc b/src/jfs.cc index 1e500742..8c09939b 100644 --- a/src/jfs.cc +++ b/src/jfs.cc @@ -112,7 +112,7 @@ bool jfs::Resize( const Partition & partition_new, bool fill_partition ) bool jfs::Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) { - if ( ! Execute_Command( "LC_NUMERIC=C dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ) + if ( ! Execute_Command( "dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ) { Partition partition ; partition .partition = dest_part_path ; diff --git a/src/main.cc b/src/main.cc index 8bff548b..65367e25 100644 --- a/src/main.cc +++ b/src/main.cc @@ -24,7 +24,7 @@ int main( int argc, char *argv[ ] ) Glib::thread_init( ); Gtk::Main kit( argc, argv ); - + //i18n bindtextdomain( GETTEXT_PACKAGE, GNOMELOCALEDIR ); bind_textdomain_codeset( GETTEXT_PACKAGE, "UTF-8" ); diff --git a/src/ntfs.cc b/src/ntfs.cc index 13b6ca75..962b34ce 100644 --- a/src/ntfs.cc +++ b/src/ntfs.cc @@ -81,10 +81,10 @@ bool ntfs::Create( const Partition & new_partition ) bool ntfs::Resize( const Partition & partition_new, bool fill_partition ) { - Glib::ustring str_temp = "echo y | LC_NUMERIC=C ntfsresize -f " + partition_new .partition ; + Glib::ustring str_temp = "echo y | ntfsresize -f " + partition_new .partition ; if ( ! fill_partition ) - str_temp += " -s " + num_to_str( partition_new .Get_Length_MB( ) - cylinder_size ) + "M" ; + str_temp += " -s " + num_to_str( partition_new .Get_Length_MB( ) - cylinder_size, true ) + "M" ; return ! Execute_Command( str_temp ) ; } diff --git a/src/reiser4.cc b/src/reiser4.cc index b6ac872d..da4fccd2 100644 --- a/src/reiser4.cc +++ b/src/reiser4.cc @@ -84,7 +84,7 @@ void reiser4::Set_Used_Sectors( Partition & partition ) bool reiser4::Create( const Partition & new_partition ) { - return ! Execute_Command( "mkfs.reiser4 -y " + new_partition .partition ) ; + return ! Execute_Command( "mkfs.reiser4 --yes " + new_partition .partition ) ; } bool reiser4::Resize( const Partition & partition_new, bool fill_partition ) @@ -114,7 +114,7 @@ bool reiser4::Copy( const Glib::ustring & src_part_path, const Glib::ustring & d bool reiser4::Check_Repair( const Partition & partition ) { - return ! Execute_Command( "fsck.reiser4 -y --fix " + partition .partition ) ; + return ! Execute_Command( "fsck.reiser4 --yes --fix " + partition .partition ) ; } int reiser4::get_estimated_time( long MB_to_Consider ) diff --git a/src/reiserfs.cc b/src/reiserfs.cc index de6f505b..fdde61f0 100644 --- a/src/reiserfs.cc +++ b/src/reiserfs.cc @@ -89,17 +89,17 @@ bool reiserfs::Create( const Partition & new_partition ) bool reiserfs::Resize( const Partition & partition_new, bool fill_partition ) { - Glib::ustring str_temp = "echo y | LC_NUMERIC=C resize_reiserfs " + partition_new .partition ; + Glib::ustring str_temp = "echo y | resize_reiserfs " + partition_new .partition ; if ( ! fill_partition ) - str_temp += " -s " + num_to_str( partition_new .Get_Length_MB( ) - cylinder_size ) + "M" ; + str_temp += " -s " + num_to_str( partition_new .Get_Length_MB( ) - cylinder_size, true ) + "M" ; return ! Execute_Command( str_temp ) ; } bool reiserfs::Copy( const Glib::ustring & src_part_path, const Glib::ustring & dest_part_path ) { - if ( ! Execute_Command( "LC_NUMERIC=C dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ) + if ( ! Execute_Command( "dd bs=8192 if=" + src_part_path + " of=" + dest_part_path ) ) { Partition partition ; partition .partition = dest_part_path ;