From b05139b2dc1f52690fb30f0734ef38716a87303d Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 8 Mar 2012 21:34:14 +0100 Subject: Add an overload to Moc to allow reading from a QIODevice. This allows external code to provide the input data, such as a bootstrapped version of qdbuscpp2xml. Change-Id: I163062efc6495b3ab92573f94523967a67601191 Reviewed-by: Olivier Goffart --- src/tools/moc/preprocessor.cpp | 9 +++++++-- src/tools/moc/preprocessor.h | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/tools/moc/preprocessor.cpp b/src/tools/moc/preprocessor.cpp index 07986a71e6..696b32c728 100644 --- a/src/tools/moc/preprocessor.cpp +++ b/src/tools/moc/preprocessor.cpp @@ -937,10 +937,15 @@ Symbols Preprocessor::preprocessed(const QByteArray &filename, FILE *file) { QFile qfile; qfile.open(file, QFile::ReadOnly); - QByteArray input = qfile.readAll(); + return preprocessed(filename, &qfile); +} + +Symbols Preprocessor::preprocessed(const QByteArray &filename, QIODevice *file) +{ + QByteArray input = file->readAll(); if (input.isEmpty()) return symbols; - + // phase 1: get rid of backslash-newlines input = cleaned(input); diff --git a/src/tools/moc/preprocessor.h b/src/tools/moc/preprocessor.h index e0707da4ee..4e0bd6343d 100644 --- a/src/tools/moc/preprocessor.h +++ b/src/tools/moc/preprocessor.h @@ -62,6 +62,7 @@ typedef SubArray MacroName; typedef QHash Macros; typedef QVector MacroSafeSet; +class QIODevice; class Preprocessor : public Parser { @@ -80,6 +81,7 @@ public: QSet preprocessedIncludes; Macros macros; Symbols preprocessed(const QByteArray &filename, FILE *file); + Symbols preprocessed(const QByteArray &filename, QIODevice *device); void skipUntilEndif(); -- cgit v1.2.3