forked from qt-creator/qt-creator
add some C escaping to relevant MI commands
This commit is contained in:
@@ -250,12 +250,18 @@ void GdbMi::dumpChildren(QByteArray * str, bool multiline, int indent) const
|
||||
}
|
||||
}
|
||||
|
||||
QByteArray GdbMi::escapeCString(const QByteArray &ba)
|
||||
class MyString : public QString {
|
||||
public:
|
||||
ushort at(int i) const { return constData()[i].unicode(); }
|
||||
};
|
||||
|
||||
template<class ST, typename CT>
|
||||
inline ST escapeCStringTpl(const ST &ba)
|
||||
{
|
||||
QByteArray ret;
|
||||
ST ret;
|
||||
ret.reserve(ba.length() * 2);
|
||||
for (int i = 0; i < ba.length(); ++i) {
|
||||
uchar c = ba.at(i);
|
||||
CT c = ba.at(i);
|
||||
switch (c) {
|
||||
case '\\': ret += "\\\\"; break;
|
||||
case '\a': ret += "\\a"; break;
|
||||
@@ -280,6 +286,16 @@ QByteArray GdbMi::escapeCString(const QByteArray &ba)
|
||||
return ret;
|
||||
}
|
||||
|
||||
QString GdbMi::escapeCString(const QString &ba)
|
||||
{
|
||||
return escapeCStringTpl<MyString, ushort>(static_cast<const MyString &>(ba));
|
||||
}
|
||||
|
||||
QByteArray GdbMi::escapeCString(const QByteArray &ba)
|
||||
{
|
||||
return escapeCStringTpl<QByteArray, uchar>(ba);
|
||||
}
|
||||
|
||||
QByteArray GdbMi::toString(bool multiline, int indent) const
|
||||
{
|
||||
QByteArray result;
|
||||
|
||||
Reference in New Issue
Block a user