--- kdebase-3.2/kioslave/devices/kdedmodule/disklist.cpp-- 2004-03-02 14:26:45.000000000 +0100 +++ kdebase-3.2/kioslave/devices/kdedmodule/disklist.cpp 2004-03-02 14:28:50.000000000 +0100 @@ -203,7 +203,7 @@ void DiskList::replaceDeviceEntry(DiskEn **/ void DiskList::readFSTAB() { - KMountPoint::List mountPoints = KMountPoint::possibleMountPoints(0); + KMountPoint::List mountPoints = KMountPoint::possibleMountPoints(KMountPoint::NeedMountOptions); for(KMountPoint::List::ConstIterator it = mountPoints.begin(); it != mountPoints.end(); ++it) @@ -213,10 +213,35 @@ void DiskList::readFSTAB() disk->setDeviceName(mp->mountedFrom()); disk->setMountPoint(mp->mountPoint()); disk->setFsType(mp->mountType()); - if (!ignoreDisk(disk)) - replaceDeviceEntry(disk); + if(mp->mountType()!="supermount") + { + QStringList mountoptions= mp->mountOptions(); + bool foundUser = false; + for ( QStringList::Iterator it = mountoptions.begin(); it != mountoptions.end(); ++it ) + { + if( (*it).contains("user")|| (*it).contains("users")) + { + foundUser = true; + break; + } + } + if( foundUser ) + { + if (!ignoreDisk(disk)) + replaceDeviceEntry(disk); + else + delete disk; + } + else + delete disk; + } else - delete disk; + { + if (!ignoreDisk(disk)) + replaceDeviceEntry(disk); + else + delete disk; + } } } @@ -225,7 +250,7 @@ void DiskList::readFSTAB() **/ void DiskList::readMNTTAB() { - KMountPoint::List mountPoints = KMountPoint::currentMountPoints(0); + KMountPoint::List mountPoints = KMountPoint::currentMountPoints(KMountPoint::NeedMountOptions); for(KMountPoint::List::ConstIterator it = mountPoints.begin(); it != mountPoints.end(); ++it) @@ -236,10 +261,36 @@ void DiskList::readMNTTAB() disk->setDeviceName(mp->mountedFrom()); disk->setMountPoint(mp->mountPoint()); disk->setFsType(mp->mountType()); - if (!ignoreDisk(disk)) - replaceDeviceEntryMounted(disk); + if(mp->mountType()!="supermount") + { + QStringList mountoptions= mp->mountOptions(); + bool foundUser = false; + for ( QStringList::Iterator it = mountoptions.begin(); it != mountoptions.end(); ++it ) + { + if( (*it).contains("user") || (*it).contains("users")) + { + foundUser = true; + break; + } + } + if( foundUser ) + { + if (!ignoreDisk(disk)) + replaceDeviceEntryMounted(disk); + else + delete disk; + } + else + delete disk; + } else - delete disk; + { + + if (!ignoreDisk(disk)) + replaceDeviceEntryMounted(disk); + else + delete disk; + } } }