author | llornkcor <llornkcor> | 2002-05-28 16:58:47 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-05-28 16:58:47 (UTC) |
commit | 9ec323fe6ae0f1f737749d3d63ffaa4a04c55973 (patch) (side-by-side diff) | |
tree | a1e65a6c72d131157728e93fbefc587f962da28d /library | |
parent | f1f06e4cf8ec641852d1d464d8fa8c95b9d2fcb5 (diff) | |
download | opie-9ec323fe6ae0f1f737749d3d63ffaa4a04c55973.zip opie-9ec323fe6ae0f1f737749d3d63ffaa4a04c55973.tar.gz opie-9ec323fe6ae0f1f737749d3d63ffaa4a04c55973.tar.bz2 |
fixed bug where not knowing /dev/ramfs
-rw-r--r-- | library/storage.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/library/storage.cpp b/library/storage.cpp index a4c96be..b4d743e 100644 --- a/library/storage.cpp +++ b/library/storage.cpp @@ -83,97 +83,100 @@ const FileSystem *StorageInfo::fileSystemOf( const QString &filename ) void StorageInfo::cardMessage( const QCString& msg, const QByteArray& ) { if ( msg == "mtabChanged()" ) update(); } // cause of the lack of a d pointer we need // to store informations in a config file :( void StorageInfo::update() { //qDebug("StorageInfo::updating"); #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) struct mntent *me; FILE *mntfp = setmntent( "/etc/mtab", "r" ); QStringList curdisks; QStringList curopts; QStringList curfs; bool rebuild = FALSE; int n=0; if ( mntfp ) { while ( (me = getmntent( mntfp )) != 0 ) { QString fs = me->mnt_fsname; if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd" - || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" ) + || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" + || fs.left(8)=="/dev/ram") { n++; curdisks.append(fs); curopts.append( me->mnt_opts ); //qDebug("-->fs %s opts %s", fs.latin1(), me->mnt_opts ); curfs.append( me->mnt_dir ); bool found = FALSE; for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) { if ( (*i)->disk() == fs ) { found = TRUE; break; } } if ( !found ) rebuild = TRUE; } } endmntent( mntfp ); } if ( rebuild || n != (int)mFileSystems.count() ) { mFileSystems.clear(); QStringList::ConstIterator it=curdisks.begin(); QStringList::ConstIterator fsit=curfs.begin(); QStringList::ConstIterator optsIt=curopts.begin(); for (; it!=curdisks.end(); ++it, ++fsit, ++optsIt) { QString opts = *optsIt; QString disk = *it; QString humanname; bool removable = FALSE; if ( isCF(disk) ) { humanname = tr("CF Card"); removable = TRUE; } else if ( disk == "/dev/hda1" ) { humanname = tr("Hard Disk"); } else if ( disk.left(9) == "/dev/mmcd" ) { humanname = tr("SD Card"); removable = TRUE; } else if ( disk.left(7) == "/dev/hd" ) humanname = tr("Hard Disk") + " " + humanname.mid(7); else if ( disk.left(7) == "/dev/sd" ) humanname = tr("SCSI Hard Disk") + " " + humanname.mid(7); else if ( disk == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) humanname = tr("Internal Storage"); else if ( disk.left(14) == "/dev/mtdblock/" ) humanname = tr("Internal Storage") + " " + humanname.mid(14); else if ( disk.left(13) == "/dev/mtdblock" ) humanname = tr("Internal Storage") + " " + humanname.mid(13); + else if ( disk.left(10) == "/dev/ramfs" ) + humanname = tr("Internal Storage") + " " + humanname.mid(10); FileSystem *fs = new FileSystem( disk, *fsit, humanname, removable, opts ); mFileSystems.append( fs ); } emit disksChanged(); } else { // just update them for (QListIterator<FileSystem> i(mFileSystems); i.current(); ++i) i.current()->update(); } #endif } //--------------------------------------------------------------------------- FileSystem::FileSystem( const QString &disk, const QString &path, const QString &name, bool rem, const QString &o ) : fsdisk( disk ), fspath( path ), humanname( name ), blkSize(512), totalBlks(0), availBlks(0), removable( rem ), opts( o ) { update(); } void FileSystem::update() { #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) struct statfs fs; |