[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.1/kdelibs/solid/solid/backends/hal [POSSIBLY UNSAFE]
From:       Nickolai Shaforostoff <shafff () ukr ! net>
Date:       2008-09-07 13:47:33
Message-ID: 1220795253.787689.28095.nullmailer () svn ! kde ! org
[Download RAW message or body]

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 <QtCore/QLocale>
 #include <QtCore/QDebug>
 #include <QtDBus/QDBusConnection>
 #include <QtDBus/QDBusInterface>
@@ -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;
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic