[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-20 20:26:53
Message-ID: 1221942413.807715.9883.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 863051 by shaforo:
port changes from trunk
M +69 -54 halstorageaccess.cpp [POSSIBLY UNSAFE: system]
--- branches/KDE/4.1/kdelibs/solid/solid/backends/hal/halstorageaccess.cpp #863050:863051
@@ -235,64 +235,79 @@
options << "uid="+QString::number(::getuid());
}
//respect Microsoft Windows-enforced charsets for fat
- if ( m_device->property("volume.fstype").toString()=="vfat" && halOptions.contains("codepage=") ) {
+ if ( m_device->property("volume.fstype").toString()=="vfat" ) {
+ bool linuxMount=halOptions.contains("codepage=");
+ bool bsdMount=halOptions.contains("-D=");
QString codepage;
- switch (QLocale::system().language()) {
- case QLocale::Russian:
- case QLocale::Ukrainian:
- case QLocale::Byelorussian:
- case QLocale::Bulgarian:
- codepage = "codepage=855";
- break;
- case QLocale::German:
- case QLocale::Italian:
- case QLocale::Spanish:
- case QLocale::French:
- case QLocale::Dutch:
- case QLocale::Danish:
- case QLocale::Swedish:
- case QLocale::Norwegian:
- case QLocale::Icelandic:
- case QLocale::English:
- codepage = "codepage=850";
- break;
- case QLocale::Portuguese:
- codepage = "codepage=860";
- break;
- case QLocale::Hebrew:
- codepage = "codepage=1255";
- break;
- case QLocale::Turkish:
- codepage = "codepage=857";
- break;
- case QLocale::Chinese:
- if (QLocale::system().country()==QLocale::China)
- codepage = "codepage=936";
- else
- //case QLocale::Taiwan:
- //case QLocale::HongKong:
- //case QLocale::Macau:
- codepage = "codepage=950";
- break;
- case QLocale::Japanese:
- codepage = "codepage=932";
- break;
- case QLocale::Korean:
- codepage = "codepage=949";
- break;
- case QLocale::Thai:
- codepage = "codepage=874";
- break;
- case QLocale::Vietnamese:
- codepage = "codepage=1258";
- break;
+ QString iocharset;
+ if (linuxMount)
+ {
+ codepage="codepage=";
+ iocharset="iocharset=utf8";
}
- if (!codepage.isEmpty()) {
- options << codepage;
- options << "iocharset=utf8";
+ else if (bsdMount)
+ {
+ codepage="-D=CP";
+ iocharset="-L="+QLocale::system().name()+".UTF-8";
}
+
+ if (linuxMount||bsdMount)
+ {
+ switch (QLocale::system().language()) {
+ case QLocale::Russian:
+ case QLocale::Ukrainian:
+ case QLocale::Byelorussian:
+ case QLocale::Bulgarian:
+ codepage+="866";
+ break;
+ case QLocale::German:
+ case QLocale::Italian:
+ case QLocale::Spanish:
+ case QLocale::French:
+ case QLocale::Dutch:
+ case QLocale::Danish:
+ case QLocale::Swedish:
+ case QLocale::Norwegian:
+ case QLocale::Icelandic:
+ case QLocale::English:
+ codepage+="437";
+ break;
+ case QLocale::Portuguese:
+ codepage+="860";
+ break;
+ case QLocale::Hebrew:
+ codepage+="862";
+ break;
+ case QLocale::Turkish:
+ codepage+="857";
+ break;
+ case QLocale::Chinese:
+ if (QLocale::system().country()==QLocale::China)
+ codepage+="936";
+ else
+ //case QLocale::Taiwan:
+ //case QLocale::HongKong:
+ //case QLocale::Macau:
+ codepage+="950";
+ break;
+ case QLocale::Japanese:
+ codepage+="932";
+ break;
+ case QLocale::Korean:
+ codepage+="949";
+ break;
+ case QLocale::Thai:
+ codepage+="874";
+ break;
+ default:
+ codepage.clear();
+ }
+ if (!codepage.isEmpty()) {
+ options << codepage;
+ options << iocharset;
+ }
+ }
}
-
msg << "" << "" << options;
return c.callWithCallback(msg, this,
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic