forked from qt-creator/qt-creator
C++/CppTools: Pass UTF-8 encoded source to Lexer
The Lexer can handle it now. Task-number: QTCREATORBUG-7356 Change-Id: I8c4b03a247656e013d44c3cedca4835e133d4036 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
@@ -378,18 +378,6 @@ void CppPreprocessor::stopSkippingBlocks(unsigned offset)
|
||||
m_currentDoc->stopSkippingBlocks(offset);
|
||||
}
|
||||
|
||||
// This is a temporary fix to handle non-ascii characters. This can be removed when the lexer can
|
||||
// handle multi-byte characters.
|
||||
static QByteArray convertToLatin1(const QByteArray &contents)
|
||||
{
|
||||
const char *p = contents.constData();
|
||||
while (char ch = *p++)
|
||||
if (ch & 0x80)
|
||||
return QString::fromUtf8(contents).toLatin1();
|
||||
|
||||
return contents;
|
||||
}
|
||||
|
||||
void CppPreprocessor::sourceNeeded(unsigned line, const QString &fileName, IncludeType type)
|
||||
{
|
||||
typedef Document::DiagnosticMessage Message;
|
||||
@@ -424,7 +412,6 @@ void CppPreprocessor::sourceNeeded(unsigned line, const QString &fileName, Inclu
|
||||
unsigned editorRevision = 0;
|
||||
QByteArray contents;
|
||||
const bool gotFileContents = getFileContents(absoluteFileName, &contents, &editorRevision);
|
||||
contents = convertToLatin1(contents);
|
||||
if (m_currentDoc && !gotFileContents) {
|
||||
const QString text = QCoreApplication::translate(
|
||||
"CppPreprocessor", "%1: Could not get file contents").arg(fileName);
|
||||
|
||||
Reference in New Issue
Block a user