Make qtbase compile with QT_NO_TEXTCODEC

Change-Id: I1614dc08c0dd1950020e415f37c97160431b2336
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This commit is contained in:
Tasuku Suzuki 2013-04-15 08:27:02 +09:00 committed by The Qt Project
parent f730cd7542
commit d9e722d856
8 changed files with 43 additions and 1 deletions

View File

@ -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 QXcbKeyboard::keysymToQtKey(xcb_keysym_t keysym, Qt::KeyboardModifiers &modifiers, QString text) const
{ {
int code = 0; int code = 0;
#ifndef QT_NO_TEXTCODEC
QTextCodec *systemCodec = QTextCodec::codecForLocale(); QTextCodec *systemCodec = QTextCodec::codecForLocale();
#endif
// Commentary in X11/keysymdef says that X codes match ASCII, so it // 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. // is safe to use the locale functions to process X codes in ISO8859-1.
// This is mainly for compatibility - applications should not use the // This is mainly for compatibility - applications should not use the
// Qt keycodes between 128 and 255 (extended ACSII codes), but should // Qt keycodes between 128 and 255 (extended ACSII codes), but should
// rather use the QKeyEvent::text(). // 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 // upper-case key, if known
code = isprint((int)keysym) ? toupper((int)keysym) : 0; code = isprint((int)keysym) ? toupper((int)keysym) : 0;
} else if (keysym >= XK_F1 && keysym <= XK_F35) { } else if (keysym >= XK_F1 && keysym <= XK_F35) {

View File

@ -170,11 +170,13 @@ QVariant QXcbMime::mimeConvertToFormat(QXcbConnection *connection, xcb_atom_t a,
if (!encoding.isEmpty() if (!encoding.isEmpty()
&& atomName == format + QLatin1String(";charset=") + QString::fromLatin1(encoding)) { && atomName == format + QLatin1String(";charset=") + QString::fromLatin1(encoding)) {
#ifndef QT_NO_TEXTCODEC
if (requestedType == QVariant::String) { if (requestedType == QVariant::String) {
QTextCodec *codec = QTextCodec::codecForName(encoding); QTextCodec *codec = QTextCodec::codecForName(encoding);
if (codec) if (codec)
return codec->toUnicode(data); return codec->toUnicode(data);
} }
#endif
return data; return data;
} }

View File

@ -877,7 +877,9 @@ void Config::load(Location location, const QString& fileName)
} }
QTextStream stream(&fin); QTextStream stream(&fin);
#ifndef QT_NO_TEXTCODEC
stream.setCodec("UTF-8"); stream.setCodec("UTF-8");
#endif
QString text = stream.readAll(); QString text = stream.readAll();
text += QLatin1String("\n\n"); text += QLatin1String("\n\n");
text += QLatin1Char('\0'); text += QLatin1Char('\0');

View File

@ -532,10 +532,12 @@ void DitaXmlGenerator::initializeGenerator(const Config &config)
projectUrl = config.getString(CONFIG_URL); projectUrl = config.getString(CONFIG_URL);
tagFile_ = config.getString(CONFIG_TAGFILE); tagFile_ = config.getString(CONFIG_TAGFILE);
#ifndef QT_NO_TEXTCODEC
outputEncoding = config.getString(CONFIG_OUTPUTENCODING); outputEncoding = config.getString(CONFIG_OUTPUTENCODING);
if (outputEncoding.isEmpty()) if (outputEncoding.isEmpty())
outputEncoding = QLatin1String("ISO-8859-1"); outputEncoding = QLatin1String("ISO-8859-1");
outputCodec = QTextCodec::codecForName(outputEncoding.toLocal8Bit()); outputCodec = QTextCodec::codecForName(outputEncoding.toLocal8Bit());
#endif
naturalLanguage = config.getString(CONFIG_NATURALLANGUAGE); naturalLanguage = config.getString(CONFIG_NATURALLANGUAGE);
if (naturalLanguage.isEmpty()) if (naturalLanguage.isEmpty())
@ -3586,7 +3588,11 @@ QString DitaXmlGenerator::registerRef(const QString& ref)
*/ */
QString DitaXmlGenerator::protectEnc(const QString& string) QString DitaXmlGenerator::protectEnc(const QString& string)
{ {
#ifndef QT_NO_TEXTCODEC
return protect(string, outputEncoding); return protect(string, outputEncoding);
#else
return protect(string);
#endif
} }
QString DitaXmlGenerator::protect(const QString& string, const QString& ) //outputEncoding) QString DitaXmlGenerator::protect(const QString& string, const QString& ) //outputEncoding)

View File

@ -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())); node->location().fatal(tr("Cannot open output file '%1'").arg(outFile->fileName()));
QTextStream* out = new QTextStream(outFile); QTextStream* out = new QTextStream(outFile);
#ifndef QT_NO_TEXTCODEC
if (outputCodec) if (outputCodec)
out->setCodec(outputCodec); out->setCodec(outputCodec);
#endif
outStreamStack.push(out); outStreamStack.push(out);
const_cast<InnerNode*>(node)->setOutputFileName(fileName); const_cast<InnerNode*>(node)->setOutputFileName(fileName);
} }

View File

@ -178,8 +178,10 @@ protected:
QMap<QString, QStringList> editionGroupMap; QMap<QString, QStringList> editionGroupMap;
QMap<QString, QStringList> editionModuleMap; QMap<QString, QStringList> editionModuleMap;
QString naturalLanguage; QString naturalLanguage;
#ifndef QT_NO_TEXTCODEC
QTextCodec* outputCodec; QTextCodec* outputCodec;
QString outputEncoding; QString outputEncoding;
#endif
QString tagFile_; QString tagFile_;
QStack<QTextStream*> outStreamStack; QStack<QTextStream*> outStreamStack;

View File

@ -179,10 +179,12 @@ void HtmlGenerator::initializeGenerator(const Config &config)
projectUrl = config.getString(CONFIG_URL); projectUrl = config.getString(CONFIG_URL);
tagFile_ = config.getString(CONFIG_TAGFILE); tagFile_ = config.getString(CONFIG_TAGFILE);
#ifndef QT_NO_TEXTCODEC
outputEncoding = config.getString(CONFIG_OUTPUTENCODING); outputEncoding = config.getString(CONFIG_OUTPUTENCODING);
if (outputEncoding.isEmpty()) if (outputEncoding.isEmpty())
outputEncoding = QLatin1String("UTF-8"); outputEncoding = QLatin1String("UTF-8");
outputCodec = QTextCodec::codecForName(outputEncoding.toLocal8Bit()); outputCodec = QTextCodec::codecForName(outputEncoding.toLocal8Bit());
#endif
naturalLanguage = config.getString(CONFIG_NATURALLANGUAGE); naturalLanguage = config.getString(CONFIG_NATURALLANGUAGE);
if (naturalLanguage.isEmpty()) if (naturalLanguage.isEmpty())
@ -1743,7 +1745,11 @@ void HtmlGenerator::generateHeader(const QString& title,
const Node *node, const Node *node,
CodeMarker *marker) CodeMarker *marker)
{ {
#ifndef QT_NO_TEXTCODEC
out() << QString("<?xml version=\"1.0\" encoding=\"%1\"?>\n").arg(outputEncoding); 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() << "<!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() << QString("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"%1\" lang=\"%1\">\n").arg(naturalLanguage);
out() << "<head>\n"; out() << "<head>\n";
@ -3185,7 +3191,11 @@ QString HtmlGenerator::registerRef(const QString& ref)
QString HtmlGenerator::protectEnc(const QString &string) QString HtmlGenerator::protectEnc(const QString &string)
{ {
#ifndef QT_NO_TEXTCODEC
return protect(string, outputEncoding); return protect(string, outputEncoding);
#else
return protect(string);
#endif
} }
QString HtmlGenerator::protect(const QString &string, const QString &outputEncoding) QString HtmlGenerator::protect(const QString &string, const QString &outputEncoding)

View File

@ -101,7 +101,9 @@ static QRegExp *definedX = 0;
static QRegExp *defines = 0; static QRegExp *defines = 0;
static QRegExp *falsehoods = 0; static QRegExp *falsehoods = 0;
#ifndef QT_NO_TEXTCODEC
static QTextCodec *sourceCodec = 0; static QTextCodec *sourceCodec = 0;
#endif
/* /*
This function is a perfect hash function for the 37 keywords of C99 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); QString sourceEncoding = config.getString(CONFIG_SOURCEENCODING);
if (sourceEncoding.isEmpty()) if (sourceEncoding.isEmpty())
sourceEncoding = QLatin1String("ISO-8859-1"); sourceEncoding = QLatin1String("ISO-8859-1");
#ifndef QT_NO_TEXTCODEC
sourceCodec = QTextCodec::codecForName(sourceEncoding.toLocal8Bit()); sourceCodec = QTextCodec::codecForName(sourceEncoding.toLocal8Bit());
#endif
comment = new QRegExp("/(?:\\*.*\\*/|/.*\n|/[^\n]*$)"); comment = new QRegExp("/(?:\\*.*\\*/|/.*\n|/[^\n]*$)");
comment->setMinimal(true); comment->setMinimal(true);
@ -770,12 +774,20 @@ bool Tokenizer::isTrue(const QString &condition)
QString Tokenizer::lexeme() const QString Tokenizer::lexeme() const
{ {
#ifndef QT_NO_TEXTCODEC
return sourceCodec->toUnicode(yyLex); return sourceCodec->toUnicode(yyLex);
#else
return QString::fromUtf8(yyLex);
#endif
} }
QString Tokenizer::previousLexeme() const QString Tokenizer::previousLexeme() const
{ {
#ifndef QT_NO_TEXTCODEC
return sourceCodec->toUnicode(yyPrevLex); return sourceCodec->toUnicode(yyPrevLex);
#else
return QString::fromUtf8(yyPrevLex);
#endif
} }
QT_END_NAMESPACE QT_END_NAMESPACE