From kde-commits Sun Sep 07 13:47:33 2008 From: Nickolai Shaforostoff Date: Sun, 07 Sep 2008 13:47:33 +0000 To: kde-commits Subject: branches/KDE/4.1/kdelibs/solid/solid/backends/hal [POSSIBLY UNSAFE] Message-Id: <1220795253.787689.28095.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=122079526510372 SVN commit 858160 by shaforo: back-port of 858156: use locale-dependant code page for vfat volumes M +33 -0 halstorageaccess.cpp [POSSIBLY UNSAFE: system] --- branches/KDE/4.1/kdelibs/solid/solid/backends/hal/halstorageaccess.cpp #858159:858160 @@ -19,6 +19,7 @@ #include "halstorageaccess.h" +#include #include #include #include @@ -233,6 +234,38 @@ if (halOptions.contains("uid=")) { options << "uid="+QString::number(::getuid()); } + //respect windows-enforced charsets for fat + if ( m_device->property("volume.fstype").toString()=="vfat" && halOptions.contains("codepage=") ) { + options << "iocharset=utf8"; + switch (QLocale::system().language()) { + case QLocale::Russian: + case QLocale::Ukrainian: + options << "codepage=1251"; + break; + case QLocale::Hebrew: + options << "codepage=1255"; + break; + case QLocale::Turkish: + options << "codepage=1254"; + case QLocale::Greek: + options << "codepage=1253"; + case QLocale::Arabic: + options << "codepage=1256"; + case QLocale::German: + case QLocale::Italian: + case QLocale::Spanish: + case QLocale::Portuguese: + case QLocale::French: + case QLocale::Dutch: + case QLocale::Danish: + case QLocale::Swedish: + case QLocale::Norwegian: + case QLocale::Icelandic: + options << "codepage=1255"; + default: + options.removeLast(); + } + } msg << "" << "" << options;