Index: trunk/ChameleonPrefPane/Sources/process.cpp =================================================================== --- trunk/ChameleonPrefPane/Sources/process.cpp (revision 43) +++ trunk/ChameleonPrefPane/Sources/process.cpp (revision 44) @@ -151,19 +151,25 @@ partInfo.fsType()!="Apple_Free" ) { - std::string DiskLabel(label); + std::string DiskLabel(label), UnixPath, WinPath; DiskLabel.erase( DiskLabel.find_last_not_of(" ") + 1); - std::string UnixPath = "/Volumes/" + DiskLabel + "/usr/bin/man"; - std::string WinPath = "/Volumes/" + DiskLabel + "/Windows/system.ini"; - - if (fileExists(UnixPath) || fileExists(WinPath)) + bool found=false; + + // early bail out if we found what we need: + if (fileExists((UnixPath = "/Volumes/" + DiskLabel + "/usr/bin/man"))) + found=true; + else if ((strstr(label,"System Reserved") ) || // don't filter system reserved windows 7 boot parts + fileExists((WinPath="/Volumes/" + DiskLabel + "/Windows/system.ini"))) + found=true; + else if (strstr(fsType,"Linux") && !strstr(fsType, "Linux_Swap")) + found=true; // Added Linux case + if (found) { //check if one of them exists if (partInfo.label().size()==0) partInfo.label("Untitled"); if(_hiddenParts.length()==0 || _hiddenParts.find(partInfo.toHdStr()) == std::string::npos) _partList.push_back(partInfo); } - } } }