*** kdebase/kioslave/media/mediamanager/halbackend.cpp.orig 2010-09-30 00:24:28.000000000 +0200 --- kdebase/kioslave/media/mediamanager/halbackend.cpp 2011-07-20 16:39:40.933056051 +0200 *************** *** 873,878 **** --- 873,905 ---- s_HALBackend->DeviceCondition(udi, condition_name); } + TQStringList HALBackend::getHALmountoptions(TQString udi) + { + const char* _ppt_string; + LibHalVolume* volume; + LibHalDrive* drive; + + TQString _ppt_QString; + + volume = libhal_volume_from_udi( m_halContext, udi.latin1() ); + if( volume ) + drive = libhal_drive_from_udi( m_halContext, libhal_volume_get_storage_device_udi( volume ) ); + else + drive = libhal_drive_from_udi( m_halContext, udi.latin1() ); + + if( !drive ) + return TQString::null; + + if( volume ) + _ppt_string = libhal_volume_policy_get_mount_options ( drive, volume, NULL ); + else + _ppt_string = libhal_drive_policy_get_mount_options ( drive, NULL ); + + _ppt_QString = TQString(_ppt_string ? _ppt_string : ""); + + return TQStringList::split(",",_ppt_QString); + } + TQStringList HALBackend::mountoptions(const TQString &name) { const Medium* medium = m_mediaList.findById(name); *************** *** 1472,1481 **** --- 1499,1524 ---- soptions << TQString("data=ordered"); } + TQStringList hal_mount_options = getHALmountoptions(medium->id()); + for (TQValueListIterator<TQString> it=hal_mount_options.begin();it!=hal_mount_options.end();it++) + { + soptions << *it; + kdDebug()<<"HALOption: "<<*it<<endl; + if ((*it).startsWith("iocharset=")) + { + soptions.remove("utf8"); + kdDebug()<<"\"iocharset=\" found. Removing \"utf8\" from options."<<endl; + } + } + + const char **options = new const char*[soptions.size() + 1]; uint noptions = 0; for (TQStringList::ConstIterator it = soptions.begin(); it != soptions.end(); ++it, ++noptions) + { options[noptions] = (*it).latin1(); + kdDebug()<<"Option: "<<*it<<endl; + } options[noptions] = NULL; TQString qerror = i18n("Cannot mount encrypted drives!"); diff -r -u kdebase-3.5.5a.dfsg.1.orig/kioslave/media/mediamanager/halbackend.h kdebase-3.5.5a.dfsg.1/kioslave/media/mediamanager/halbackend.h --- kdebase-3.5.5a.dfsg.1.orig/kioslave/media/mediamanager/halbackend.h 2007-01-25 12:34:07.133446000 +0300 +++ kdebase-3.5.5a.dfsg.1/kioslave/media/mediamanager/halbackend.h 2007-01-25 16:33:54.413638693 +0300 @@ -192,6 +192,7 @@ const char* message ); + TQStringList getHALmountoptions(QString udi); /* HAL and DBus structures */ private: /**