Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/tools/qmlcachegen/resourcefilter.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | int filterResourceFile(const QString &input, const QString &output) | - | ||||||||||||
3 | { | - | ||||||||||||
4 | enum State { | - | ||||||||||||
5 | InitialState, | - | ||||||||||||
6 | InRCC, | - | ||||||||||||
7 | InResource, | - | ||||||||||||
8 | InFile | - | ||||||||||||
9 | }; | - | ||||||||||||
10 | State state = InitialState; | - | ||||||||||||
11 | - | |||||||||||||
12 | QString prefix; | - | ||||||||||||
13 | QString currentFileName; | - | ||||||||||||
14 | QXmlStreamAttributes fileAttributes; | - | ||||||||||||
15 | - | |||||||||||||
16 | QFile file(input); | - | ||||||||||||
17 | if (!file.open(QIODevice::ReadOnly)
| 0 | ||||||||||||
18 | fprintf( | - | ||||||||||||
19 | stderr | - | ||||||||||||
20 | , "Cannot open %s for reading.\n", QtPrivate::asString(input).toLocal8Bit().constData()); | - | ||||||||||||
21 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
22 | 1 never executed: return 1 ; | 0 | ||||||||||||
23 | ; never executed: return 1 ; | 0 | ||||||||||||
24 | } | - | ||||||||||||
25 | - | |||||||||||||
26 | QDir inputDirectory = QFileInfo(file).absoluteDir(); | - | ||||||||||||
27 | QDir outputDirectory = QFileInfo(output).absoluteDir(); | - | ||||||||||||
28 | - | |||||||||||||
29 | QString outputString; | - | ||||||||||||
30 | QXmlStreamWriter writer(&outputString); | - | ||||||||||||
31 | writer.setAutoFormatting(true); | - | ||||||||||||
32 | - | |||||||||||||
33 | QStringList remainingFiles; | - | ||||||||||||
34 | - | |||||||||||||
35 | QXmlStreamReader reader(&file); | - | ||||||||||||
36 | while (!reader.atEnd()
| 0 | ||||||||||||
37 | switch (reader.readNext()) { | - | ||||||||||||
38 | case never executed: QXmlStreamReader::StartDocument:case QXmlStreamReader::StartDocument: never executed: {case QXmlStreamReader::StartDocument: | 0 | ||||||||||||
39 | QStringRef version = reader.documentVersion(); | - | ||||||||||||
40 | if (!version.isEmpty()
| 0 | ||||||||||||
41 | writer.writeStartDocument(version.toString()); never executed: writer.writeStartDocument(version.toString()); | 0 | ||||||||||||
42 | else | - | ||||||||||||
43 | writer.writeStartDocument(); never executed: writer.writeStartDocument(); | 0 | ||||||||||||
44 | break; never executed: break; | 0 | ||||||||||||
45 | } | - | ||||||||||||
46 | case never executed: QXmlStreamReader::EndDocument:case QXmlStreamReader::EndDocument: never executed: case QXmlStreamReader::EndDocument: | 0 | ||||||||||||
47 | writer.writeEndDocument(); | - | ||||||||||||
48 | break; never executed: break; | 0 | ||||||||||||
49 | case never executed: QXmlStreamReader::StartElement:case QXmlStreamReader::StartElement: never executed: case QXmlStreamReader::StartElement: | 0 | ||||||||||||
50 | if (reader.name() == ([]() noexcept -> QString { enum { Size = sizeof(u"" "RCC")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "RCC" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }())) { | - | ||||||||||||
51 | if (state != InitialState
| 0 | ||||||||||||
52 | fprintf( | - | ||||||||||||
53 | stderr | - | ||||||||||||
54 | , "Unexpected RCC tag in line %d\n", int(reader.lineNumber())); | - | ||||||||||||
55 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
56 | 1 never executed: return 1 ; | 0 | ||||||||||||
57 | ; never executed: return 1 ; | 0 | ||||||||||||
58 | } | - | ||||||||||||
59 | state = InRCC; | - | ||||||||||||
60 | } else if (reader.name() == ([]() noexcept -> QString { enum { Size = sizeof(u"" "qresource")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "qresource" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }())) { | - | ||||||||||||
61 | if (state != InRCC
| 0 | ||||||||||||
62 | fprintf( | - | ||||||||||||
63 | stderr | - | ||||||||||||
64 | , "Unexpected qresource tag in line %d\n", int(reader.lineNumber())); | - | ||||||||||||
65 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
66 | 1 never executed: return 1 ; | 0 | ||||||||||||
67 | ; never executed: return 1 ; | 0 | ||||||||||||
68 | } | - | ||||||||||||
69 | state = InResource; | - | ||||||||||||
70 | QXmlStreamAttributes attributes = reader.attributes(); | - | ||||||||||||
71 | if (attributes.hasAttribute(([]() noexcept -> QString { enum { Size = sizeof(u"" "prefix")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "prefix" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()))
| 0 | ||||||||||||
72 | prefix = attributes.value(([]() noexcept -> QString { enum { Size = sizeof(u"" "prefix")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "prefix" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return never executed: qstring_literal_temp;return qstring_literal_temp; never executed: }())).toString();return qstring_literal_temp; never executed: prefix = attributes.value(([]() noexcept -> QString { enum { Size = sizeof(u"" "prefix")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "prefix" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }())).toString(); | 0 | ||||||||||||
73 | if (!prefix.startsWith(QLatin1Char('/'))
| 0 | ||||||||||||
74 | prefix.prepend(QLatin1Char('/')); never executed: prefix.prepend(QLatin1Char('/')); | 0 | ||||||||||||
75 | if (!prefix.endsWith(QLatin1Char('/'))
| 0 | ||||||||||||
76 | prefix.append(QLatin1Char('/')); never executed: prefix.append(QLatin1Char('/')); | 0 | ||||||||||||
77 | } else if (reader.name() == ([]() noexcept -> QString { enum { Size = sizeof(u"" "file")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "file" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }())) { | - | ||||||||||||
78 | if (state != InResource
| 0 | ||||||||||||
79 | fprintf( | - | ||||||||||||
80 | stderr | - | ||||||||||||
81 | , "Unexpected file tag in line %d\n", int(reader.lineNumber())); | - | ||||||||||||
82 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
83 | 1 never executed: return 1 ; | 0 | ||||||||||||
84 | ; never executed: return 1 ; | 0 | ||||||||||||
85 | } | - | ||||||||||||
86 | state = InFile; | - | ||||||||||||
87 | fileAttributes = reader.attributes(); | - | ||||||||||||
88 | continue; never executed: continue; | 0 | ||||||||||||
89 | } | - | ||||||||||||
90 | writer.writeStartElement(reader.name().toString()); dead code: writer.writeStartElement(reader.name().toString()); | - | ||||||||||||
91 | writer.writeAttributes(reader.attributes()); dead code: writer.writeAttributes(reader.attributes()); | - | ||||||||||||
92 | continue; dead code: continue; | - | ||||||||||||
93 | - | |||||||||||||
94 | case never executed: QXmlStreamReader::EndElement:case QXmlStreamReader::EndElement: never executed: case QXmlStreamReader::EndElement: | 0 | ||||||||||||
95 | if (reader.name() == ([]() noexcept -> QString { enum { Size = sizeof(u"" "file")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "file" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }())) { | - | ||||||||||||
96 | if (state != InFile
| 0 | ||||||||||||
97 | fprintf( | - | ||||||||||||
98 | stderr | - | ||||||||||||
99 | , "Unexpected end of file tag in line %d\n", int(reader.lineNumber())); | - | ||||||||||||
100 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
101 | 1 never executed: return 1 ; | 0 | ||||||||||||
102 | ; never executed: return 1 ; | 0 | ||||||||||||
103 | } | - | ||||||||||||
104 | state = InResource; | - | ||||||||||||
105 | continue; never executed: continue; | 0 | ||||||||||||
106 | } else dead code: ifelse dead code: (reader.name() == ([]() noexceptif (reader.name() == ([]() noexcept dead code: -> QString { enum { Size = sizeof(u"" "qresource")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "qresource" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }())) {if (reader.name() == ([]() noexcept | - | ||||||||||||
107 | if (state != InResource
| 0 | ||||||||||||
108 | fprintf( | - | ||||||||||||
109 | stderr | - | ||||||||||||
110 | , "Unexpected end of qresource tag in line %d\n", int(reader.lineNumber())); | - | ||||||||||||
111 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
112 | 1 never executed: return 1 ; | 0 | ||||||||||||
113 | ; never executed: return 1 ; | 0 | ||||||||||||
114 | } | - | ||||||||||||
115 | state = InRCC; | - | ||||||||||||
116 | } else if (reader.name() == ([]() noexcept -> QString { enum { Size = sizeof(u"" "RCC")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "RCC" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }())) { | - | ||||||||||||
117 | if (state != InRCC
| 0 | ||||||||||||
118 | fprintf( | - | ||||||||||||
119 | stderr | - | ||||||||||||
120 | , "Unexpected end of RCC tag in line %d\n", int(reader.lineNumber())); | - | ||||||||||||
121 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
122 | 1 never executed: return 1 ; | 0 | ||||||||||||
123 | ; never executed: return 1 ; | 0 | ||||||||||||
124 | } | - | ||||||||||||
125 | state = InitialState; | - | ||||||||||||
126 | } | - | ||||||||||||
127 | writer.writeEndElement(); | - | ||||||||||||
128 | continue; never executed: continue; | 0 | ||||||||||||
129 | - | |||||||||||||
130 | case never executed: QXmlStreamReader::Characters:case QXmlStreamReader::Characters: never executed: case QXmlStreamReader::Characters: | 0 | ||||||||||||
131 | if (reader.isWhitespace()
| 0 | ||||||||||||
132 | break; never executed: break; | 0 | ||||||||||||
133 | if (state != InFile
| 0 | ||||||||||||
134 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
135 | 1 never executed: return 1 ; | 0 | ||||||||||||
136 | ; never executed: return 1 ; | 0 | ||||||||||||
137 | currentFileName = reader.text().toString(); | - | ||||||||||||
138 | if (currentFileName.isEmpty()
| 0 | ||||||||||||
139 | continue; never executed: continue; | 0 | ||||||||||||
140 | - | |||||||||||||
141 | if (!currentFileName.endsWith(([]() noexcept -> QString { enum { Size = sizeof(u"" ".qml")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" ".qml" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()))
| 0 | ||||||||||||
142 | writer.writeStartElement(([]() noexcept -> QString { enum { Size = sizeof(u"" "file")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "file" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return never executed: qstring_literal_temp;return qstring_literal_temp; never executed: }()));return qstring_literal_temp; | 0 | ||||||||||||
143 | - | |||||||||||||
144 | if (!fileAttributes.hasAttribute(([]() noexcept -> QString { enum { Size = sizeof(u"" "alias")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "alias" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()))
| 0 | ||||||||||||
145 | fileAttributes.append(([]() noexcept -> QString { enum { Size = sizeof(u"" "alias")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "alias" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return never executed: qstring_literal_temp;return qstring_literal_temp; never executed: }()), currentFileName);return qstring_literal_temp; never executed: fileAttributes.append(([]() noexcept -> QString { enum { Size = sizeof(u"" "alias")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "alias" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()), currentFileName); | 0 | ||||||||||||
146 | - | |||||||||||||
147 | currentFileName = inputDirectory.absoluteFilePath(currentFileName); | - | ||||||||||||
148 | currentFileName = outputDirectory.relativeFilePath(currentFileName); | - | ||||||||||||
149 | - | |||||||||||||
150 | remainingFiles << currentFileName; | - | ||||||||||||
151 | - | |||||||||||||
152 | writer.writeAttributes(fileAttributes); | - | ||||||||||||
153 | writer.writeCharacters(currentFileName); | - | ||||||||||||
154 | writer.writeEndElement(); | - | ||||||||||||
155 | } never executed: end of block | 0 | ||||||||||||
156 | continue; never executed: continue; | 0 | ||||||||||||
157 | - | |||||||||||||
158 | default never executed: :default: never executed: break;default: never executed: break; | 0 | ||||||||||||
159 | } | - | ||||||||||||
160 | } | - | ||||||||||||
161 | - | |||||||||||||
162 | if (!remainingFiles.isEmpty()
| 0 | ||||||||||||
163 | QFile outputFile(output); | - | ||||||||||||
164 | if (!outputFile.open(QIODevice::WriteOnly | QIODevice::Truncate)
| 0 | ||||||||||||
165 | fprintf( | - | ||||||||||||
166 | stderr | - | ||||||||||||
167 | , "Cannot open %s for writing.\n", QtPrivate::asString(output).toLocal8Bit().constData()); | - | ||||||||||||
168 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
169 | 1 never executed: return 1 ; | 0 | ||||||||||||
170 | ; never executed: return 1 ; | 0 | ||||||||||||
171 | } | - | ||||||||||||
172 | const QByteArray outputStringUtf8 = outputString.toUtf8(); | - | ||||||||||||
173 | if (outputFile.write(outputStringUtf8) != outputStringUtf8.size()
| 0 | ||||||||||||
174 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
175 | 1 never executed: return 1 ; | 0 | ||||||||||||
176 | ; never executed: return 1 ; | 0 | ||||||||||||
177 | - | |||||||||||||
178 | outputFile.close(); | - | ||||||||||||
179 | if (outputFile.error() != QFileDevice::NoError
| 0 | ||||||||||||
180 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
181 | 1 never executed: return 1 ; | 0 | ||||||||||||
182 | ; never executed: return 1 ; | 0 | ||||||||||||
183 | - | |||||||||||||
184 | - | |||||||||||||
185 | - | |||||||||||||
186 | fprintf( | - | ||||||||||||
187 | stdout | - | ||||||||||||
188 | , "New resource file written with %d files.\n", remainingFiles.count()); | - | ||||||||||||
189 | } never executed: end of block | 0 | ||||||||||||
190 | - | |||||||||||||
191 | return never executed: return 0 ; never executed: return 0 ; | 0 | ||||||||||||
192 | 0 never executed: return 0 ; | 0 | ||||||||||||
193 | ; never executed: return 0 ; | 0 | ||||||||||||
194 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |