mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-11 09:03:40 +02:00
2018-07-25 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the 'RDEscapeString' function that caused corruption in UTF-8 strings. * Added a UTF-8 complaint MySQL driver in 'drivers/qt3-mysql-utf/'.
This commit is contained in:
@@ -76,74 +76,32 @@ QString RDCheckDateTime(QDate const &date, QString const &format)
|
||||
|
||||
QString RDEscapeString(QString const &str)
|
||||
{
|
||||
QString orig=str;
|
||||
QString res;
|
||||
|
||||
for(unsigned i=0;i<str.length();i++) {
|
||||
switch(((const char *)str)[i]) {
|
||||
case '(':
|
||||
res+=QString("\\\(");
|
||||
break;
|
||||
QChar c=orig.ref(i);
|
||||
switch(c) {
|
||||
case '"':
|
||||
res+=QString("\\\"");
|
||||
break;
|
||||
|
||||
case ')':
|
||||
res+=QString("\\)");
|
||||
break;
|
||||
case '`':
|
||||
res+=QString("\\`");
|
||||
break;
|
||||
|
||||
case '{':
|
||||
res+=QString("\\\{");
|
||||
break;
|
||||
case '\'':
|
||||
res+=QString("\\\'");
|
||||
break;
|
||||
|
||||
case '"':
|
||||
res+=QString("\\\"");
|
||||
break;
|
||||
case '\\':
|
||||
res+=QString("\\");
|
||||
res+=QString("\\");
|
||||
break;
|
||||
|
||||
case '`':
|
||||
res+=QString("\\`");
|
||||
break;
|
||||
|
||||
case '[':
|
||||
res+=QString("\\\[");
|
||||
break;
|
||||
|
||||
case '\'':
|
||||
res+=QString("\\\'");
|
||||
break;
|
||||
|
||||
case '\\':
|
||||
res+=QString("\\");
|
||||
res+=QString("\\");
|
||||
break;
|
||||
|
||||
case '?':
|
||||
res+=QString("\\\?");
|
||||
break;
|
||||
|
||||
case ' ':
|
||||
res+=QString("\\ ");
|
||||
break;
|
||||
|
||||
case '&':
|
||||
res+=QString("\\&");
|
||||
break;
|
||||
|
||||
case ';':
|
||||
res+=QString("\\;");
|
||||
break;
|
||||
|
||||
case '<':
|
||||
res+=QString("\\<");
|
||||
break;
|
||||
|
||||
case '>':
|
||||
res+=QString("\\>");
|
||||
break;
|
||||
|
||||
case '|':
|
||||
res+=QString("\\|");
|
||||
break;
|
||||
|
||||
default:
|
||||
res+=((const char *)str)[i];
|
||||
break;
|
||||
default:
|
||||
res+=c;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user