Rewrote get_label to use vol_id command for hfs file system
svn path=/trunk/; revision=872
This commit is contained in:
parent
b12fbfb1b2
commit
0a95638dc8
1
AUTHORS
1
AUTHORS
|
@ -12,6 +12,7 @@ not an invitation to misrepresent who contributed to GNU GParted.
|
||||||
We need to keep track of copyright (see the Maintainer HOWTO on www.gnu.org).
|
We need to keep track of copyright (see the Maintainer HOWTO on www.gnu.org).
|
||||||
|
|
||||||
Curtis Gedak <gedakc@users.sourceforge.net>
|
Curtis Gedak <gedakc@users.sourceforge.net>
|
||||||
|
* Rewrote get_label functionality for hfs
|
||||||
* Wrote create, get_label, and check_repair functionality for hfs+
|
* Wrote create, get_label, and check_repair functionality for hfs+
|
||||||
* Wrote get_label functionality for fat16 and fat32 filesystems
|
* Wrote get_label functionality for fat16 and fat32 filesystems
|
||||||
* Wrote Utils::regexp_label() function
|
* Wrote Utils::regexp_label() function
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
2008-07-25 Curtis Gedak <gedakc@gmail.com>
|
2008-07-25 Curtis Gedak <gedakc@gmail.com>
|
||||||
|
|
||||||
|
* src/hfs.cc: Rewrote get_label to use vol_id for hfs file system
|
||||||
|
- Reason: not all hfsutils packages include hfsck (e.g. Ubuntu 7.10)
|
||||||
|
|
||||||
* src/hfsplus.cc: Enhanced support for hfsplus file system
|
* src/hfsplus.cc: Enhanced support for hfsplus file system
|
||||||
- Added create, get_label, and check_repair functionality
|
- Added create, get_label, and check_repair functionality
|
||||||
- Additional feature support is provided by the hfsprogs package
|
- Additional feature support is provided by the hfsprogs package
|
||||||
|
|
3
README
3
README
|
@ -98,10 +98,11 @@ Optional packages include:
|
||||||
dosfstools
|
dosfstools
|
||||||
mtools
|
mtools
|
||||||
hfsutils
|
hfsutils
|
||||||
|
hfsprogs
|
||||||
jfsutils
|
jfsutils
|
||||||
ntfsprogs
|
ntfsprogs
|
||||||
reiser4progs
|
reiser4progs
|
||||||
reiserfsprogs
|
reiserfsprogs
|
||||||
xfsprogs
|
xfsprogs
|
||||||
NOTE: If the vol_id command is in the search PATH, it will be
|
NOTE: If the vol_id command is in the search PATH, it will be
|
||||||
used to read linux-swap volume labels.
|
used to read linux-swap, hfs, and hfs+ file system volume labels.
|
||||||
|
|
28
src/hfs.cc
28
src/hfs.cc
|
@ -34,10 +34,10 @@ FS hfs::get_filesystem_support()
|
||||||
fs .create = GParted::FS::EXTERNAL ;
|
fs .create = GParted::FS::EXTERNAL ;
|
||||||
|
|
||||||
if ( ! Glib::find_program_in_path( "hfsck" ) .empty() )
|
if ( ! Glib::find_program_in_path( "hfsck" ) .empty() )
|
||||||
{
|
|
||||||
fs .get_label = FS::EXTERNAL ;
|
|
||||||
fs .check = FS::EXTERNAL ;
|
fs .check = FS::EXTERNAL ;
|
||||||
}
|
|
||||||
|
if ( ! Glib::find_program_in_path( "vol_id" ) .empty() )
|
||||||
|
fs .get_label = FS::EXTERNAL ;
|
||||||
|
|
||||||
fs .copy = GParted::FS::GPARTED ;
|
fs .copy = GParted::FS::GPARTED ;
|
||||||
fs .move = GParted::FS::GPARTED ;
|
fs .move = GParted::FS::GPARTED ;
|
||||||
|
@ -53,22 +53,12 @@ void hfs::set_used_sectors( Partition & partition )
|
||||||
|
|
||||||
void hfs::get_label( Partition & partition )
|
void hfs::get_label( Partition & partition )
|
||||||
{
|
{
|
||||||
if ( ! Utils::execute_command( "hfsck -v " + partition .get_path(), output, error, true ) )
|
if ( ! Utils::execute_command( "vol_id " + partition .get_path(), output, error, true ) )
|
||||||
{
|
{
|
||||||
char buf[512] ;
|
Glib::ustring label = Utils::regexp_label( output, "ID_FS_LABEL=([^\n]*)" ) ;
|
||||||
index = output .find( "drVN" ) ;
|
//FIXME: find a better way to see if label is empty.. imagine someone uses 'untitled' as label.... ;)
|
||||||
|
if( label != "untitled" )
|
||||||
if ( index < output .length() && sscanf( output .substr( index ) .c_str(), "drVN = %512s", buf ) == 1 )
|
partition .label = label ;
|
||||||
{
|
|
||||||
partition .label = buf ;
|
|
||||||
|
|
||||||
//remove "" from the label..
|
|
||||||
if ( partition .label .size() > 0 && partition .label[0] == '\"' )
|
|
||||||
partition .label = partition .label .substr( 1 ) ;
|
|
||||||
|
|
||||||
if ( partition .label .size() > 0 && partition .label[ partition .label .size() -1 ] == '\"' )
|
|
||||||
partition .label = partition .label .substr( 0, partition .label .size() -1 ) ;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -114,5 +104,3 @@ bool hfs::check_repair( const Partition & partition, OperationDetail & operation
|
||||||
}
|
}
|
||||||
|
|
||||||
} //GParted
|
} //GParted
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue