diff options
author | Tasuku Suzuki <stasuku@gmail.com> | 2013-04-15 08:27:02 +0900 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-06-17 09:44:22 +0200 |
commit | d9e722d8560c07adb1852cfd061ffb23197d06fd (patch) | |
tree | 32ead273ee4b8b4795819c0e7739fe4bc0080dcb | |
parent | f730cd7542548d7d5fb7cd25f631e471697960c8 (diff) |
Make qtbase compile with QT_NO_TEXTCODEC
Change-Id: I1614dc08c0dd1950020e415f37c97160431b2336
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
-rw-r--r-- | src/plugins/platforms/xcb/qxcbkeyboard.cpp | 8 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbmime.cpp | 2 | ||||
-rw-r--r-- | src/tools/qdoc/config.cpp | 2 | ||||
-rw-r--r-- | src/tools/qdoc/ditaxmlgenerator.cpp | 6 | ||||
-rw-r--r-- | src/tools/qdoc/generator.cpp | 2 | ||||
-rw-r--r-- | src/tools/qdoc/generator.h | 2 | ||||
-rw-r--r-- | src/tools/qdoc/htmlgenerator.cpp | 10 | ||||
-rw-r--r-- | src/tools/qdoc/tokenizer.cpp | 12 |
8 files changed, 43 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp index 155b327315..f7c473de88 100644 --- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp +++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp @@ -883,13 +883,19 @@ int QXcbKeyboard::keysymToQtKey(xcb_keysym_t key) const int QXcbKeyboard::keysymToQtKey(xcb_keysym_t keysym, Qt::KeyboardModifiers &modifiers, QString text) const { int code = 0; +#ifndef QT_NO_TEXTCODEC QTextCodec *systemCodec = QTextCodec::codecForLocale(); +#endif // Commentary in X11/keysymdef says that X codes match ASCII, so it // is safe to use the locale functions to process X codes in ISO8859-1. // This is mainly for compatibility - applications should not use the // Qt keycodes between 128 and 255 (extended ACSII codes), but should // rather use the QKeyEvent::text(). - if (keysym < 128 || (keysym < 256 && systemCodec->mibEnum() == 4)) { + if (keysym < 128 || (keysym < 256 +#ifndef QT_NO_TEXTCODEC + && systemCodec->mibEnum() == 4 +#endif + )) { // upper-case key, if known code = isprint((int)keysym) ? toupper((int)keysym) : 0; } else if (keysym >= XK_F1 && keysym <= XK_F35) { diff --git a/src/plugins/platforms/xcb/qxcbmime.cpp b/src/plugins/platforms/xcb/qxcbmime.cpp index bc8c559c6e..b205a63267 100644 --- a/src/plugins/platforms/xcb/qxcbmime.cpp +++ b/src/plugins/platforms/xcb/qxcbmime.cpp @@ -170,11 +170,13 @@ QVariant QXcbMime::mimeConvertToFormat(QXcbConnection *connection, xcb_atom_t a, if (!encoding.isEmpty() && atomName == format + QLatin1String(";charset=") + QString::fromLatin1(encoding)) { +#ifndef QT_NO_TEXTCODEC if (requestedType == QVariant::String) { QTextCodec *codec = QTextCodec::codecForName(encoding); if (codec) return codec->toUnicode(data); } +#endif return data; } diff --git a/src/tools/qdoc/config.cpp b/src/tools/qdoc/config.cpp index 273cb60d7d..a475ccbfb6 100644 --- a/src/tools/qdoc/config.cpp +++ b/src/tools/qdoc/config.cpp @@ -877,7 +877,9 @@ void Config::load(Location location, const QString& fileName) } QTextStream stream(&fin); +#ifndef QT_NO_TEXTCODEC stream.setCodec("UTF-8"); +#endif QString text = stream.readAll(); text += QLatin1String("\n\n"); text += QLatin1Char('\0'); diff --git a/src/tools/qdoc/ditaxmlgenerator.cpp b/src/tools/qdoc/ditaxmlgenerator.cpp index dd87e889bf..af8ac505f8 100644 --- a/src/tools/qdoc/ditaxmlgenerator.cpp +++ b/src/tools/qdoc/ditaxmlgenerator.cpp @@ -532,10 +532,12 @@ void DitaXmlGenerator::initializeGenerator(const Config &config) projectUrl = config.getString(CONFIG_URL); tagFile_ = config.getString(CONFIG_TAGFILE); +#ifndef QT_NO_TEXTCODEC outputEncoding = config.getString(CONFIG_OUTPUTENCODING); if (outputEncoding.isEmpty()) outputEncoding = QLatin1String("ISO-8859-1"); outputCodec = QTextCodec::codecForName(outputEncoding.toLocal8Bit()); +#endif naturalLanguage = config.getString(CONFIG_NATURALLANGUAGE); if (naturalLanguage.isEmpty()) @@ -3586,7 +3588,11 @@ QString DitaXmlGenerator::registerRef(const QString& ref) */ QString DitaXmlGenerator::protectEnc(const QString& string) { +#ifndef QT_NO_TEXTCODEC return protect(string, outputEncoding); +#else + return protect(string); +#endif } QString DitaXmlGenerator::protect(const QString& string, const QString& ) //outputEncoding) diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp index 81be63abe1..187253df50 100644 --- a/src/tools/qdoc/generator.cpp +++ b/src/tools/qdoc/generator.cpp @@ -273,8 +273,10 @@ void Generator::beginSubPage(const InnerNode* node, const QString& fileName) node->location().fatal(tr("Cannot open output file '%1'").arg(outFile->fileName())); QTextStream* out = new QTextStream(outFile); +#ifndef QT_NO_TEXTCODEC if (outputCodec) out->setCodec(outputCodec); +#endif outStreamStack.push(out); const_cast<InnerNode*>(node)->setOutputFileName(fileName); } diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h index 28a9ae5ce8..2fb3117765 100644 --- a/src/tools/qdoc/generator.h +++ b/src/tools/qdoc/generator.h @@ -178,8 +178,10 @@ protected: QMap<QString, QStringList> editionGroupMap; QMap<QString, QStringList> editionModuleMap; QString naturalLanguage; +#ifndef QT_NO_TEXTCODEC QTextCodec* outputCodec; QString outputEncoding; +#endif QString tagFile_; QStack<QTextStream*> outStreamStack; diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp index 3d6f04decf..845ed35b3c 100644 --- a/src/tools/qdoc/htmlgenerator.cpp +++ b/src/tools/qdoc/htmlgenerator.cpp @@ -179,10 +179,12 @@ void HtmlGenerator::initializeGenerator(const Config &config) projectUrl = config.getString(CONFIG_URL); tagFile_ = config.getString(CONFIG_TAGFILE); +#ifndef QT_NO_TEXTCODEC outputEncoding = config.getString(CONFIG_OUTPUTENCODING); if (outputEncoding.isEmpty()) outputEncoding = QLatin1String("UTF-8"); outputCodec = QTextCodec::codecForName(outputEncoding.toLocal8Bit()); +#endif naturalLanguage = config.getString(CONFIG_NATURALLANGUAGE); if (naturalLanguage.isEmpty()) @@ -1743,7 +1745,11 @@ void HtmlGenerator::generateHeader(const QString& title, const Node *node, CodeMarker *marker) { +#ifndef QT_NO_TEXTCODEC out() << QString("<?xml version=\"1.0\" encoding=\"%1\"?>\n").arg(outputEncoding); +#else + out() << QString("<?xml version=\"1.0\"?>\n"); +#endif out() << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; out() << QString("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"%1\" lang=\"%1\">\n").arg(naturalLanguage); out() << "<head>\n"; @@ -3185,7 +3191,11 @@ QString HtmlGenerator::registerRef(const QString& ref) QString HtmlGenerator::protectEnc(const QString &string) { +#ifndef QT_NO_TEXTCODEC return protect(string, outputEncoding); +#else + return protect(string); +#endif } QString HtmlGenerator::protect(const QString &string, const QString &outputEncoding) diff --git a/src/tools/qdoc/tokenizer.cpp b/src/tools/qdoc/tokenizer.cpp index 3968cdb828..224d451f4c 100644 --- a/src/tools/qdoc/tokenizer.cpp +++ b/src/tools/qdoc/tokenizer.cpp @@ -101,7 +101,9 @@ static QRegExp *definedX = 0; static QRegExp *defines = 0; static QRegExp *falsehoods = 0; +#ifndef QT_NO_TEXTCODEC static QTextCodec *sourceCodec = 0; +#endif /* This function is a perfect hash function for the 37 keywords of C99 @@ -496,7 +498,9 @@ void Tokenizer::initialize(const Config &config) QString sourceEncoding = config.getString(CONFIG_SOURCEENCODING); if (sourceEncoding.isEmpty()) sourceEncoding = QLatin1String("ISO-8859-1"); +#ifndef QT_NO_TEXTCODEC sourceCodec = QTextCodec::codecForName(sourceEncoding.toLocal8Bit()); +#endif comment = new QRegExp("/(?:\\*.*\\*/|/.*\n|/[^\n]*$)"); comment->setMinimal(true); @@ -770,12 +774,20 @@ bool Tokenizer::isTrue(const QString &condition) QString Tokenizer::lexeme() const { +#ifndef QT_NO_TEXTCODEC return sourceCodec->toUnicode(yyLex); +#else + return QString::fromUtf8(yyLex); +#endif } QString Tokenizer::previousLexeme() const { +#ifndef QT_NO_TEXTCODEC return sourceCodec->toUnicode(yyPrevLex); +#else + return QString::fromUtf8(yyPrevLex); +#endif } QT_END_NAMESPACE |