Sophie

Sophie

distrib > Mandriva > 2006.0 > i586 > media > main-src > by-pkgid > a6bc312ce50b5c8d0c51736e58ac32bc > files > 205

kdebase-3.4.2-55mdk.src.rpm

--- 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;
+	}
    }
 }