Line | Source Code | Coverage |
---|
1 | /**************************************************************************** | - |
2 | ** | - |
3 | ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). | - |
4 | ** Contact: http://www.qt-project.org/legal | - |
5 | ** | - |
6 | ** This file is part of the QtCore module of the Qt Toolkit. | - |
7 | ** | - |
8 | ** $QT_BEGIN_LICENSE:LGPL$ | - |
9 | ** Commercial License Usage | - |
10 | ** Licensees holding valid commercial Qt licenses may use this file in | - |
11 | ** accordance with the commercial license agreement provided with the | - |
12 | ** Software or, alternatively, in accordance with the terms contained in | - |
13 | ** a written agreement between you and Digia. For licensing terms and | - |
14 | ** conditions see http://qt.digia.com/licensing. For further information | - |
15 | ** use the contact form at http://qt.digia.com/contact-us. | - |
16 | ** | - |
17 | ** GNU Lesser General Public License Usage | - |
18 | ** Alternatively, this file may be used under the terms of the GNU Lesser | - |
19 | ** General Public License version 2.1 as published by the Free Software | - |
20 | ** Foundation and appearing in the file LICENSE.LGPL included in the | - |
21 | ** packaging of this file. Please review the following information to | - |
22 | ** ensure the GNU Lesser General Public License version 2.1 requirements | - |
23 | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | - |
24 | ** | - |
25 | ** In addition, as a special exception, Digia gives you certain additional | - |
26 | ** rights. These rights are described in the Digia Qt LGPL Exception | - |
27 | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | - |
28 | ** | - |
29 | ** GNU General Public License Usage | - |
30 | ** Alternatively, this file may be used under the terms of the GNU | - |
31 | ** General Public License version 3.0 as published by the Free Software | - |
32 | ** Foundation and appearing in the file LICENSE.GPL included in the | - |
33 | ** packaging of this file. Please review the following information to | - |
34 | ** ensure the GNU General Public License version 3.0 requirements will be | - |
35 | ** met: http://www.gnu.org/copyleft/gpl.html. | - |
36 | ** | - |
37 | ** | - |
38 | ** $QT_END_LICENSE$ | - |
39 | ** | - |
40 | ****************************************************************************/ | - |
41 | | - |
42 | #if !defined(QWS) && defined(Q_OS_MAC) | - |
43 | # include "private/qcore_mac_p.h" | - |
44 | # include <CoreFoundation/CoreFoundation.h> | - |
45 | #endif | - |
46 | | - |
47 | #include "qglobal.h" | - |
48 | | - |
49 | #include "qplatformdefs.h" | - |
50 | | - |
51 | #include "qdatastream.h" | - |
52 | #include "qdebug.h" | - |
53 | #include "qstring.h" | - |
54 | #include "qlocale.h" | - |
55 | #include "qlocale_p.h" | - |
56 | #include "qlocale_tools_p.h" | - |
57 | #include "qdatetime_p.h" | - |
58 | #include "qnamespace.h" | - |
59 | #include "qdatetime.h" | - |
60 | #include "qstringlist.h" | - |
61 | #include "qvariant.h" | - |
62 | #include "qstringbuilder.h" | - |
63 | #include "private/qnumeric_p.h" | - |
64 | #include "private/qsystemlibrary_p.h" | - |
65 | #ifdef Q_OS_WIN | - |
66 | # include <qt_windows.h> | - |
67 | # include <time.h> | - |
68 | #endif | - |
69 | | - |
70 | QT_BEGIN_NAMESPACE | - |
71 | | - |
72 | #ifndef QT_NO_SYSTEMLOCALE | - |
73 | static QSystemLocale *_systemLocale = 0; | - |
74 | class QSystemLocaleSingleton: public QSystemLocale | - |
75 | { | - |
76 | public: | - |
77 | QSystemLocaleSingleton() : QSystemLocale(true) {} executed: } Execution Count:45 | 45 |
78 | }; | - |
79 | | - |
80 | Q_GLOBAL_STATIC(QSystemLocaleSingleton, QSystemLocale_globalSystemLocale) never executed: delete x; executed: return thisGlobalStatic.pointer.load(); Execution Count:17754 partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x) no Evaluation Count:0 | yes Evaluation Count:45 |
evaluated: !thisGlobalStatic.pointer.load() yes Evaluation Count:45 | yes Evaluation Count:17709 |
partially evaluated: !thisGlobalStatic.destroyed yes Evaluation Count:45 | no Evaluation Count:0 |
| 0-17754 |
81 | static QLocaleData *system_data = 0; | - |
82 | Q_GLOBAL_STATIC(QLocaleData, globalLocaleData) never executed: delete x; executed: return thisGlobalStatic.pointer.load(); Execution Count:45 partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x) no Evaluation Count:0 | yes Evaluation Count:45 |
partially evaluated: !thisGlobalStatic.pointer.load() yes Evaluation Count:45 | no Evaluation Count:0 |
partially evaluated: !thisGlobalStatic.destroyed yes Evaluation Count:45 | no Evaluation Count:0 |
| 0-45 |
83 | #endif | - |
84 | | - |
85 | /****************************************************************************** | - |
86 | ** Helpers for accessing Qt locale database | - |
87 | */ | - |
88 | | - |
89 | QT_BEGIN_INCLUDE_NAMESPACE | - |
90 | #include "qlocale_data_p.h" | - |
91 | QT_END_INCLUDE_NAMESPACE | - |
92 | | - |
93 | QLocale::Language QLocalePrivate::codeToLanguage(const QString &code) | - |
94 | { | - |
95 | int len = code.length(); executed (the execution status of this line is deduced): int len = code.length(); | - |
96 | if (len != 2 && len != 3) evaluated: len != 2 yes Evaluation Count:440 | yes Evaluation Count:2884 |
partially evaluated: len != 3 no Evaluation Count:0 | yes Evaluation Count:440 |
| 0-2884 |
97 | return QLocale::C; never executed: return QLocale::C; | 0 |
98 | ushort uc1 = len-- > 0 ? code[0].toLower().unicode() : 0; partially evaluated: len-- > 0 yes Evaluation Count:3324 | no Evaluation Count:0 |
| 0-3324 |
99 | ushort uc2 = len-- > 0 ? code[1].toLower().unicode() : 0; partially evaluated: len-- > 0 yes Evaluation Count:3324 | no Evaluation Count:0 |
| 0-3324 |
100 | ushort uc3 = len-- > 0 ? code[2].toLower().unicode() : 0; evaluated: len-- > 0 yes Evaluation Count:440 | yes Evaluation Count:2884 |
| 440-2884 |
101 | | - |
102 | const unsigned char *c = language_code_list; executed (the execution status of this line is deduced): const unsigned char *c = language_code_list; | - |
103 | for (; *c != 0; c += 3) { evaluated: *c != 0 yes Evaluation Count:269564 | yes Evaluation Count:47 |
| 47-269564 |
104 | if (uc1 == c[0] && uc2 == c[1] && uc3 == c[2]) evaluated: uc1 == c[0] yes Evaluation Count:17715 | yes Evaluation Count:251849 |
evaluated: uc2 == c[1] yes Evaluation Count:3585 | yes Evaluation Count:14130 |
evaluated: uc3 == c[2] yes Evaluation Count:3277 | yes Evaluation Count:308 |
| 308-251849 |
105 | return QLocale::Language((c - language_code_list)/3); executed: return QLocale::Language((c - language_code_list)/3); Execution Count:3277 | 3277 |
106 | } executed: } Execution Count:266287 | 266287 |
107 | | - |
108 | // legacy codes | - |
109 | if (uc1 == 'n' && uc2 == 'o' && uc3 == 0) { // no -> nb evaluated: uc1 == 'n' yes Evaluation Count:40 | yes Evaluation Count:7 |
partially evaluated: uc2 == 'o' yes Evaluation Count:40 | no Evaluation Count:0 |
partially evaluated: uc3 == 0 yes Evaluation Count:40 | no Evaluation Count:0 |
| 0-40 |
110 | Q_STATIC_ASSERT(QLocale::Norwegian == QLocale::NorwegianBokmal); executed (the execution status of this line is deduced): static_assert(bool(QLocale::Norwegian == QLocale::NorwegianBokmal), "QLocale::Norwegian == QLocale::NorwegianBokmal"); | - |
111 | return QLocale::Norwegian; executed: return QLocale::Norwegian; Execution Count:40 | 40 |
112 | } | - |
113 | if (uc1 == 't' && uc2 == 'l' && uc3 == 0) { // tl -> fil evaluated: uc1 == 't' yes Evaluation Count:1 | yes Evaluation Count:6 |
partially evaluated: uc2 == 'l' yes Evaluation Count:1 | no Evaluation Count:0 |
partially evaluated: uc3 == 0 yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-6 |
114 | Q_STATIC_ASSERT(QLocale::Tagalog == QLocale::Filipino); executed (the execution status of this line is deduced): static_assert(bool(QLocale::Tagalog == QLocale::Filipino), "QLocale::Tagalog == QLocale::Filipino"); | - |
115 | return QLocale::Tagalog; executed: return QLocale::Tagalog; Execution Count:1 | 1 |
116 | } | - |
117 | if (uc1 == 's' && uc2 == 'h' && uc3 == 0) { // sh -> sr[_Latn] evaluated: uc1 == 's' yes Evaluation Count:1 | yes Evaluation Count:5 |
partially evaluated: uc2 == 'h' yes Evaluation Count:1 | no Evaluation Count:0 |
partially evaluated: uc3 == 0 yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-5 |
118 | Q_STATIC_ASSERT(QLocale::SerboCroatian == QLocale::Serbian); executed (the execution status of this line is deduced): static_assert(bool(QLocale::SerboCroatian == QLocale::Serbian), "QLocale::SerboCroatian == QLocale::Serbian"); | - |
119 | return QLocale::SerboCroatian; executed: return QLocale::SerboCroatian; Execution Count:1 | 1 |
120 | } | - |
121 | if (uc1 == 'm' && uc2 == 'o' && uc3 == 0) { // mo -> ro evaluated: uc1 == 'm' yes Evaluation Count:1 | yes Evaluation Count:4 |
partially evaluated: uc2 == 'o' yes Evaluation Count:1 | no Evaluation Count:0 |
partially evaluated: uc3 == 0 yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-4 |
122 | Q_STATIC_ASSERT(QLocale::Moldavian == QLocale::Romanian); executed (the execution status of this line is deduced): static_assert(bool(QLocale::Moldavian == QLocale::Romanian), "QLocale::Moldavian == QLocale::Romanian"); | - |
123 | return QLocale::Moldavian; executed: return QLocale::Moldavian; Execution Count:1 | 1 |
124 | } | - |
125 | | - |
126 | return QLocale::C; executed: return QLocale::C; Execution Count:4 | 4 |
127 | } | - |
128 | | - |
129 | QLocale::Script QLocalePrivate::codeToScript(const QString &code) | - |
130 | { | - |
131 | int len = code.length(); executed (the execution status of this line is deduced): int len = code.length(); | - |
132 | if (len != 4) evaluated: len != 4 yes Evaluation Count:3308 | yes Evaluation Count:12 |
| 12-3308 |
133 | return QLocale::AnyScript; executed: return QLocale::AnyScript; Execution Count:3308 | 3308 |
134 | | - |
135 | // script is titlecased in our data | - |
136 | unsigned char c0 = code.at(0).toUpper().toLatin1(); executed (the execution status of this line is deduced): unsigned char c0 = code.at(0).toUpper().toLatin1(); | - |
137 | unsigned char c1 = code.at(1).toLower().toLatin1(); executed (the execution status of this line is deduced): unsigned char c1 = code.at(1).toLower().toLatin1(); | - |
138 | unsigned char c2 = code.at(2).toLower().toLatin1(); executed (the execution status of this line is deduced): unsigned char c2 = code.at(2).toLower().toLatin1(); | - |
139 | unsigned char c3 = code.at(3).toLower().toLatin1(); executed (the execution status of this line is deduced): unsigned char c3 = code.at(3).toLower().toLatin1(); | - |
140 | | - |
141 | const unsigned char *c = script_code_list; executed (the execution status of this line is deduced): const unsigned char *c = script_code_list; | - |
142 | for (int i = 0; i < QLocale::LastScript; ++i, c += 4) { partially evaluated: i < QLocale::LastScript yes Evaluation Count:72 | no Evaluation Count:0 |
| 0-72 |
143 | if (c0 == c[0] && c1 == c[1] && c2 == c[2] && c3 == c[3]) evaluated: c0 == c[0] yes Evaluation Count:15 | yes Evaluation Count:57 |
partially evaluated: c1 == c[1] yes Evaluation Count:15 | no Evaluation Count:0 |
partially evaluated: c2 == c[2] yes Evaluation Count:15 | no Evaluation Count:0 |
evaluated: c3 == c[3] yes Evaluation Count:12 | yes Evaluation Count:3 |
| 0-57 |
144 | return QLocale::Script(i); executed: return QLocale::Script(i); Execution Count:12 | 12 |
145 | } executed: } Execution Count:60 | 60 |
146 | return QLocale::AnyScript; never executed: return QLocale::AnyScript; | 0 |
147 | } | - |
148 | | - |
149 | QLocale::Country QLocalePrivate::codeToCountry(const QString &code) | - |
150 | { | - |
151 | int len = code.length(); executed (the execution status of this line is deduced): int len = code.length(); | - |
152 | if (len != 2 && len != 3) evaluated: len != 2 yes Evaluation Count:1400 | yes Evaluation Count:1920 |
evaluated: len != 3 yes Evaluation Count:519 | yes Evaluation Count:881 |
| 519-1920 |
153 | return QLocale::AnyCountry; executed: return QLocale::AnyCountry; Execution Count:519 | 519 |
154 | ushort uc1 = len-- > 0 ? code[0].toUpper().unicode() : 0; partially evaluated: len-- > 0 yes Evaluation Count:2801 | no Evaluation Count:0 |
| 0-2801 |
155 | ushort uc2 = len-- > 0 ? code[1].toUpper().unicode() : 0; partially evaluated: len-- > 0 yes Evaluation Count:2801 | no Evaluation Count:0 |
| 0-2801 |
156 | ushort uc3 = len-- > 0 ? code[2].toUpper().unicode() : 0; evaluated: len-- > 0 yes Evaluation Count:881 | yes Evaluation Count:1920 |
| 881-1920 |
157 | | - |
158 | const unsigned char *c = country_code_list; executed (the execution status of this line is deduced): const unsigned char *c = country_code_list; | - |
159 | for (; *c != 0; c += 3) { evaluated: *c != 0 yes Evaluation Count:510975 | yes Evaluation Count:876 |
| 876-510975 |
160 | if (uc1 == c[0] && uc2 == c[1] && uc3 == c[2]) evaluated: uc1 == c[0] yes Evaluation Count:17282 | yes Evaluation Count:493693 |
evaluated: uc2 == c[1] yes Evaluation Count:2801 | yes Evaluation Count:14481 |
evaluated: uc3 == c[2] yes Evaluation Count:1925 | yes Evaluation Count:876 |
| 876-493693 |
161 | return QLocale::Country((c - country_code_list)/3); executed: return QLocale::Country((c - country_code_list)/3); Execution Count:1925 | 1925 |
162 | } executed: } Execution Count:509050 | 509050 |
163 | | - |
164 | return QLocale::AnyCountry; executed: return QLocale::AnyCountry; Execution Count:876 | 876 |
165 | } | - |
166 | | - |
167 | QString QLocalePrivate::languageCode() const | - |
168 | { | - |
169 | if (m_data->m_language_id == QLocale::AnyLanguage) partially evaluated: m_data->m_language_id == QLocale::AnyLanguage no Evaluation Count:0 | yes Evaluation Count:2615 |
| 0-2615 |
170 | return QString(); never executed: return QString(); | 0 |
171 | if (m_data->m_language_id == QLocale::C) evaluated: m_data->m_language_id == QLocale::C yes Evaluation Count:101 | yes Evaluation Count:2514 |
| 101-2514 |
172 | return QLatin1String("C"); executed: return QLatin1String("C"); Execution Count:101 | 101 |
173 | | - |
174 | const unsigned char *c = language_code_list + 3*(uint(m_data->m_language_id)); executed (the execution status of this line is deduced): const unsigned char *c = language_code_list + 3*(uint(m_data->m_language_id)); | - |
175 | | - |
176 | QString code(c[2] == 0 ? 2 : 3, Qt::Uninitialized); executed (the execution status of this line is deduced): QString code(c[2] == 0 ? 2 : 3, Qt::Uninitialized); | - |
177 | | - |
178 | code[0] = ushort(c[0]); executed (the execution status of this line is deduced): code[0] = ushort(c[0]); | - |
179 | code[1] = ushort(c[1]); executed (the execution status of this line is deduced): code[1] = ushort(c[1]); | - |
180 | if (c[2] != 0) evaluated: c[2] != 0 yes Evaluation Count:292 | yes Evaluation Count:2222 |
| 292-2222 |
181 | code[2] = ushort(c[2]); executed: code[2] = ushort(c[2]); Execution Count:292 | 292 |
182 | | - |
183 | return code; executed: return code; Execution Count:2514 | 2514 |
184 | } | - |
185 | | - |
186 | QString QLocalePrivate::scriptCode() const | - |
187 | { | - |
188 | if (m_data->m_script_id == QLocale::AnyScript || m_data->m_script_id > QLocale::LastScript) never evaluated: m_data->m_script_id == QLocale::AnyScript never evaluated: m_data->m_script_id > QLocale::LastScript | 0 |
189 | return QString(); never executed: return QString(); | 0 |
190 | const unsigned char *c = script_code_list + 4*(uint(m_data->m_script_id)); never executed (the execution status of this line is deduced): const unsigned char *c = script_code_list + 4*(uint(m_data->m_script_id)); | - |
191 | return QString::fromLatin1((const char *)c, 4); never executed: return QString::fromLatin1((const char *)c, 4); | 0 |
192 | } | - |
193 | | - |
194 | QString QLocalePrivate::countryCode() const | - |
195 | { | - |
196 | if (m_data->m_country_id == QLocale::AnyCountry) partially evaluated: m_data->m_country_id == QLocale::AnyCountry no Evaluation Count:0 | yes Evaluation Count:2514 |
| 0-2514 |
197 | return QString(); never executed: return QString(); | 0 |
198 | | - |
199 | const unsigned char *c = country_code_list + 3*(uint(m_data->m_country_id)); executed (the execution status of this line is deduced): const unsigned char *c = country_code_list + 3*(uint(m_data->m_country_id)); | - |
200 | | - |
201 | QString code(c[2] == 0 ? 2 : 3, Qt::Uninitialized); executed (the execution status of this line is deduced): QString code(c[2] == 0 ? 2 : 3, Qt::Uninitialized); | - |
202 | | - |
203 | code[0] = ushort(c[0]); executed (the execution status of this line is deduced): code[0] = ushort(c[0]); | - |
204 | code[1] = ushort(c[1]); executed (the execution status of this line is deduced): code[1] = ushort(c[1]); | - |
205 | if (c[2] != 0) evaluated: c[2] != 0 yes Evaluation Count:4 | yes Evaluation Count:2510 |
| 4-2510 |
206 | code[2] = ushort(c[2]); executed: code[2] = ushort(c[2]); Execution Count:4 | 4 |
207 | | - |
208 | return code; executed: return code; Execution Count:2514 | 2514 |
209 | } | - |
210 | | - |
211 | // http://www.unicode.org/reports/tr35/#Likely_Subtags | - |
212 | static bool addLikelySubtags(QLocaleId &localeId) | - |
213 | { | - |
214 | // ### optimize with bsearch | - |
215 | const int likely_subtags_count = sizeof(likely_subtags) / sizeof(likely_subtags[0]); executed (the execution status of this line is deduced): const int likely_subtags_count = sizeof(likely_subtags) / sizeof(likely_subtags[0]); | - |
216 | const QLocaleId *p = likely_subtags; executed (the execution status of this line is deduced): const QLocaleId *p = likely_subtags; | - |
217 | const QLocaleId *const e = p + likely_subtags_count; executed (the execution status of this line is deduced): const QLocaleId *const e = p + likely_subtags_count; | - |
218 | for ( ; p < e; p += 2) { evaluated: p < e yes Evaluation Count:2147483647 | yes Evaluation Count:23061435 |
| 23061435-2147483647 |
219 | if (localeId == p[0]) { evaluated: localeId == p[0] yes Evaluation Count:6161475 | yes Evaluation Count:2147483647 |
| 6161475-2147483647 |
220 | localeId = p[1]; executed (the execution status of this line is deduced): localeId = p[1]; | - |
221 | return true; executed: return true; Execution Count:6161475 | 6161475 |
222 | } | - |
223 | } executed: } Execution Count:2147483647 | 2147483647 |
224 | return false; executed: return false; Execution Count:23061435 | 23061435 |
225 | } | - |
226 | | - |
227 | QLocaleId QLocaleId::withLikelySubtagsAdded() const | - |
228 | { | - |
229 | // language_script_region | - |
230 | if (language_id || script_id || country_id) { evaluated: language_id yes Evaluation Count:19984794 | yes Evaluation Count:2 |
partially evaluated: script_id no Evaluation Count:0 | yes Evaluation Count:2 |
partially evaluated: country_id no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-19984794 |
231 | QLocaleId id = QLocaleId::fromIds(language_id, script_id, country_id); executed (the execution status of this line is deduced): QLocaleId id = QLocaleId::fromIds(language_id, script_id, country_id); | - |
232 | if (addLikelySubtags(id)) evaluated: addLikelySubtags(id) yes Evaluation Count:3079820 | yes Evaluation Count:16904961 |
| 3079820-16904961 |
233 | return id; executed: return id; Execution Count:3079820 | 3079820 |
234 | } executed: } Execution Count:16904961 | 16904961 |
235 | // language_script | - |
236 | if (country_id) { evaluated: country_id yes Evaluation Count:3081648 | yes Evaluation Count:13823315 |
| 3081648-13823315 |
237 | QLocaleId id = QLocaleId::fromIds(language_id, script_id, 0); executed (the execution status of this line is deduced): QLocaleId id = QLocaleId::fromIds(language_id, script_id, 0); | - |
238 | if (addLikelySubtags(id)) { evaluated: addLikelySubtags(id) yes Evaluation Count:3395 | yes Evaluation Count:3078253 |
| 3395-3078253 |
239 | id.country_id = country_id; executed (the execution status of this line is deduced): id.country_id = country_id; | - |
240 | return id; executed: return id; Execution Count:3395 | 3395 |
241 | } | - |
242 | } executed: } Execution Count:3078253 | 3078253 |
243 | // language_region | - |
244 | if (script_id) { evaluated: script_id yes Evaluation Count:3078260 | yes Evaluation Count:13823308 |
| 3078260-13823308 |
245 | QLocaleId id = QLocaleId::fromIds(language_id, 0, country_id); executed (the execution status of this line is deduced): QLocaleId id = QLocaleId::fromIds(language_id, 0, country_id); | - |
246 | if (addLikelySubtags(id)) { evaluated: addLikelySubtags(id) yes Evaluation Count:39 | yes Evaluation Count:3078221 |
| 39-3078221 |
247 | id.script_id = script_id; executed (the execution status of this line is deduced): id.script_id = script_id; | - |
248 | return id; executed: return id; Execution Count:39 | 39 |
249 | } | - |
250 | } executed: } Execution Count:3078221 | 3078221 |
251 | // language | - |
252 | if (script_id && country_id) { evaluated: script_id yes Evaluation Count:3078221 | yes Evaluation Count:13823308 |
partially evaluated: country_id yes Evaluation Count:3078221 | no Evaluation Count:0 |
| 0-13823308 |
253 | QLocaleId id = QLocaleId::fromIds(language_id, 0, 0); executed (the execution status of this line is deduced): QLocaleId id = QLocaleId::fromIds(language_id, 0, 0); | - |
254 | if (addLikelySubtags(id)) { partially evaluated: addLikelySubtags(id) yes Evaluation Count:3078221 | no Evaluation Count:0 |
| 0-3078221 |
255 | id.script_id = script_id; executed (the execution status of this line is deduced): id.script_id = script_id; | - |
256 | id.country_id = country_id; executed (the execution status of this line is deduced): id.country_id = country_id; | - |
257 | return id; executed: return id; Execution Count:3078221 | 3078221 |
258 | } | - |
259 | } | 0 |
260 | return *this; executed: return *this; Execution Count:13823309 | 13823309 |
261 | } | - |
262 | | - |
263 | QLocaleId QLocaleId::withLikelySubtagsRemoved() const | - |
264 | { | - |
265 | QLocaleId max = withLikelySubtagsAdded(); executed (the execution status of this line is deduced): QLocaleId max = withLikelySubtagsAdded(); | - |
266 | // language | - |
267 | { | - |
268 | QLocaleId id = QLocaleId::fromIds(language_id, 0, 0); executed (the execution status of this line is deduced): QLocaleId id = QLocaleId::fromIds(language_id, 0, 0); | - |
269 | if (id.withLikelySubtagsAdded() == max) evaluated: id.withLikelySubtagsAdded() == max yes Evaluation Count:3077224 | yes Evaluation Count:1043 |
| 1043-3077224 |
270 | return id; executed: return id; Execution Count:3077224 | 3077224 |
271 | } | - |
272 | // language_region | - |
273 | if (country_id) { partially evaluated: country_id yes Evaluation Count:1043 | no Evaluation Count:0 |
| 0-1043 |
274 | QLocaleId id = QLocaleId::fromIds(language_id, 0, country_id); executed (the execution status of this line is deduced): QLocaleId id = QLocaleId::fromIds(language_id, 0, country_id); | - |
275 | if (id.withLikelySubtagsAdded() == max) evaluated: id.withLikelySubtagsAdded() == max yes Evaluation Count:1034 | yes Evaluation Count:9 |
| 9-1034 |
276 | return id; executed: return id; Execution Count:1034 | 1034 |
277 | } executed: } Execution Count:9 | 9 |
278 | // language_script | - |
279 | if (script_id) { partially evaluated: script_id yes Evaluation Count:9 | no Evaluation Count:0 |
| 0-9 |
280 | QLocaleId id = QLocaleId::fromIds(language_id, script_id, 0); executed (the execution status of this line is deduced): QLocaleId id = QLocaleId::fromIds(language_id, script_id, 0); | - |
281 | if (id.withLikelySubtagsAdded() == max) evaluated: id.withLikelySubtagsAdded() == max yes Evaluation Count:7 | yes Evaluation Count:2 |
| 2-7 |
282 | return id; executed: return id; Execution Count:7 | 7 |
283 | } executed: } Execution Count:2 | 2 |
284 | return max; executed: return max; Execution Count:2 | 2 |
285 | } | - |
286 | | - |
287 | QString QLocaleId::bcp47Name() const | - |
288 | { | - |
289 | if (language_id == QLocale::AnyLanguage) partially evaluated: language_id == QLocale::AnyLanguage no Evaluation Count:0 | yes Evaluation Count:3078300 |
| 0-3078300 |
290 | return QString(); never executed: return QString(); | 0 |
291 | if (language_id == QLocale::C) evaluated: language_id == QLocale::C yes Evaluation Count:2 | yes Evaluation Count:3078298 |
| 2-3078298 |
292 | return QStringLiteral("C"); executed: return QString::fromUtf8("" "C" "", sizeof("C") - 1); Execution Count:2 | 2 |
293 | | - |
294 | const unsigned char *lang = language_code_list + 3*uint(language_id); executed (the execution status of this line is deduced): const unsigned char *lang = language_code_list + 3*uint(language_id); | - |
295 | const unsigned char *script = executed (the execution status of this line is deduced): const unsigned char *script = | - |
296 | (script_id != QLocale::AnyScript ? script_code_list + 4*uint(script_id) : 0); evaluated: script_id != QLocale::AnyScript yes Evaluation Count:30 | yes Evaluation Count:3078268 |
| 30-3078268 |
297 | const unsigned char *country = executed (the execution status of this line is deduced): const unsigned char *country = | - |
298 | (country_id != QLocale::AnyCountry ? country_code_list + 3*uint(country_id) : 0); evaluated: country_id != QLocale::AnyCountry yes Evaluation Count:1069 | yes Evaluation Count:3077229 |
| 1069-3077229 |
299 | char len = (lang[2] != 0 ? 3 : 2) + (script ? 4+1 : 0) + (country ? (country[2] != 0 ? 3 : 2)+1 : 0); evaluated: lang[2] != 0 yes Evaluation Count:516 | yes Evaluation Count:3077782 |
evaluated: script yes Evaluation Count:30 | yes Evaluation Count:3078268 |
evaluated: country yes Evaluation Count:1069 | yes Evaluation Count:3077229 |
| 30-3078268 |
300 | QString name(len, Qt::Uninitialized); executed (the execution status of this line is deduced): QString name(len, Qt::Uninitialized); | - |
301 | QChar *uc = name.data(); executed (the execution status of this line is deduced): QChar *uc = name.data(); | - |
302 | *uc++ = ushort(lang[0]); executed (the execution status of this line is deduced): *uc++ = ushort(lang[0]); | - |
303 | *uc++ = ushort(lang[1]); executed (the execution status of this line is deduced): *uc++ = ushort(lang[1]); | - |
304 | if (lang[2] != 0) evaluated: lang[2] != 0 yes Evaluation Count:516 | yes Evaluation Count:3077782 |
| 516-3077782 |
305 | *uc++ = ushort(lang[2]); executed: *uc++ = ushort(lang[2]); Execution Count:516 | 516 |
306 | if (script) { evaluated: script yes Evaluation Count:30 | yes Evaluation Count:3078268 |
| 30-3078268 |
307 | *uc++ = QLatin1Char('-'); executed (the execution status of this line is deduced): *uc++ = QLatin1Char('-'); | - |
308 | *uc++ = ushort(script[0]); executed (the execution status of this line is deduced): *uc++ = ushort(script[0]); | - |
309 | *uc++ = ushort(script[1]); executed (the execution status of this line is deduced): *uc++ = ushort(script[1]); | - |
310 | *uc++ = ushort(script[2]); executed (the execution status of this line is deduced): *uc++ = ushort(script[2]); | - |
311 | *uc++ = ushort(script[3]); executed (the execution status of this line is deduced): *uc++ = ushort(script[3]); | - |
312 | } executed: } Execution Count:30 | 30 |
313 | if (country) { evaluated: country yes Evaluation Count:1069 | yes Evaluation Count:3077229 |
| 1069-3077229 |
314 | *uc++ = QLatin1Char('-'); executed (the execution status of this line is deduced): *uc++ = QLatin1Char('-'); | - |
315 | *uc++ = ushort(country[0]); executed (the execution status of this line is deduced): *uc++ = ushort(country[0]); | - |
316 | *uc++ = ushort(country[1]); executed (the execution status of this line is deduced): *uc++ = ushort(country[1]); | - |
317 | if (country[2] != 0) evaluated: country[2] != 0 yes Evaluation Count:7 | yes Evaluation Count:1062 |
| 7-1062 |
318 | *uc++ = ushort(country[2]); executed: *uc++ = ushort(country[2]); Execution Count:7 | 7 |
319 | } executed: } Execution Count:1069 | 1069 |
320 | return name; executed: return name; Execution Count:3078298 | 3078298 |
321 | } | - |
322 | | - |
323 | QString QLocalePrivate::bcp47Name() const | - |
324 | { | - |
325 | if (m_data->m_language_id == QLocale::AnyLanguage) partially evaluated: m_data->m_language_id == QLocale::AnyLanguage no Evaluation Count:0 | yes Evaluation Count:16912484 |
| 0-16912484 |
326 | return QString(); never executed: return QString(); | 0 |
327 | if (m_data->m_language_id == QLocale::C) evaluated: m_data->m_language_id == QLocale::C yes Evaluation Count:13834237 | yes Evaluation Count:3078244 |
| 3078244-13834237 |
328 | return QStringLiteral("C"); executed: return QString::fromUtf8("" "C" "", sizeof("C") - 1); Execution Count:13834236 | 13834236 |
329 | | - |
330 | QLocaleId localeId = QLocaleId::fromIds(m_data->m_language_id, m_data->m_script_id, m_data->m_country_id); executed (the execution status of this line is deduced): QLocaleId localeId = QLocaleId::fromIds(m_data->m_language_id, m_data->m_script_id, m_data->m_country_id); | - |
331 | return localeId.withLikelySubtagsRemoved().bcp47Name(); executed: return localeId.withLikelySubtagsRemoved().bcp47Name(); Execution Count:3078244 | 3078244 |
332 | } | - |
333 | | - |
334 | const QLocaleData *QLocaleData::findLocaleData(QLocale::Language language, QLocale::Script script, QLocale::Country country) | - |
335 | { | - |
336 | QLocaleId localeId = QLocaleId::fromIds(language, script, country); executed (the execution status of this line is deduced): QLocaleId localeId = QLocaleId::fromIds(language, script, country); | - |
337 | localeId = localeId.withLikelySubtagsAdded(); executed (the execution status of this line is deduced): localeId = localeId.withLikelySubtagsAdded(); | - |
338 | | - |
339 | uint idx = locale_index[localeId.language_id]; executed (the execution status of this line is deduced): uint idx = locale_index[localeId.language_id]; | - |
340 | | - |
341 | const QLocaleData *data = locale_data + idx; executed (the execution status of this line is deduced): const QLocaleData *data = locale_data + idx; | - |
342 | | - |
343 | if (idx == 0) // default language has no associated country evaluated: idx == 0 yes Evaluation Count:13823331 | yes Evaluation Count:3847 |
| 3847-13823331 |
344 | return data; executed: return data; Execution Count:13823330 | 13823330 |
345 | | - |
346 | Q_ASSERT(data->m_language_id == localeId.language_id); executed (the execution status of this line is deduced): qt_noop(); | - |
347 | | - |
348 | if (localeId.script_id != QLocale::AnyScript && localeId.country_id != QLocale::AnyCountry) { partially evaluated: localeId.script_id != QLocale::AnyScript yes Evaluation Count:3847 | no Evaluation Count:0 |
partially evaluated: localeId.country_id != QLocale::AnyCountry yes Evaluation Count:3847 | no Evaluation Count:0 |
| 0-3847 |
349 | // both script and country are explicitly specified | - |
350 | do { | - |
351 | if (data->m_script_id == localeId.script_id && data->m_country_id == localeId.country_id) evaluated: data->m_script_id == localeId.script_id yes Evaluation Count:21855 | yes Evaluation Count:438 |
evaluated: data->m_country_id == localeId.country_id yes Evaluation Count:3843 | yes Evaluation Count:18012 |
| 438-21855 |
352 | return data; executed: return data; Execution Count:3843 | 3843 |
353 | ++data; executed (the execution status of this line is deduced): ++data; | - |
354 | } while (data->m_language_id == localeId.language_id); executed: } Execution Count:18450 evaluated: data->m_language_id == localeId.language_id yes Evaluation Count:18446 | yes Evaluation Count:4 |
| 4-18450 |
355 | | - |
356 | // no match; try again with default script | - |
357 | localeId.script_id = QLocale::AnyScript; executed (the execution status of this line is deduced): localeId.script_id = QLocale::AnyScript; | - |
358 | data = locale_data + idx; executed (the execution status of this line is deduced): data = locale_data + idx; | - |
359 | } executed: } Execution Count:4 | 4 |
360 | | - |
361 | if (localeId.script_id == QLocale::AnyScript && localeId.country_id == QLocale::AnyCountry) partially evaluated: localeId.script_id == QLocale::AnyScript yes Evaluation Count:4 | no Evaluation Count:0 |
partially evaluated: localeId.country_id == QLocale::AnyCountry no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
362 | return data; never executed: return data; | 0 |
363 | | - |
364 | if (localeId.script_id == QLocale::AnyScript) { partially evaluated: localeId.script_id == QLocale::AnyScript yes Evaluation Count:4 | no Evaluation Count:0 |
| 0-4 |
365 | do { | - |
366 | if (data->m_country_id == localeId.country_id) partially evaluated: data->m_country_id == localeId.country_id no Evaluation Count:0 | yes Evaluation Count:284 |
| 0-284 |
367 | return data; never executed: return data; | 0 |
368 | ++data; executed (the execution status of this line is deduced): ++data; | - |
369 | } while (data->m_language_id == localeId.language_id); executed: } Execution Count:284 evaluated: data->m_language_id == localeId.language_id yes Evaluation Count:280 | yes Evaluation Count:4 |
| 4-284 |
370 | } else if (localeId.country_id == QLocale::AnyCountry) { executed: } Execution Count:4 never evaluated: localeId.country_id == QLocale::AnyCountry | 0-4 |
371 | do { | - |
372 | if (data->m_script_id == localeId.script_id) never evaluated: data->m_script_id == localeId.script_id | 0 |
373 | return data; never executed: return data; | 0 |
374 | ++data; never executed (the execution status of this line is deduced): ++data; | - |
375 | } while (data->m_language_id == localeId.language_id); never executed: } never evaluated: data->m_language_id == localeId.language_id | 0 |
376 | } | 0 |
377 | | - |
378 | return locale_data + idx; executed: return locale_data + idx; Execution Count:4 | 4 |
379 | } | - |
380 | | - |
381 | static bool parse_locale_tag(const QString &input, int &i, QString *result, const QString &separators) | - |
382 | { | - |
383 | *result = QString(8, Qt::Uninitialized); // worst case according to BCP47 executed (the execution status of this line is deduced): *result = QString(8, Qt::Uninitialized); | - |
384 | QChar *pch = result->data(); executed (the execution status of this line is deduced): QChar *pch = result->data(); | - |
385 | const QChar *uc = input.data() + i; executed (the execution status of this line is deduced): const QChar *uc = input.data() + i; | - |
386 | const int l = input.length(); executed (the execution status of this line is deduced): const int l = input.length(); | - |
387 | int size = 0; executed (the execution status of this line is deduced): int size = 0; | - |
388 | for (; i < l && size < 8; ++i, ++size) { evaluated: i < l yes Evaluation Count:18863 | yes Evaluation Count:3242 |
partially evaluated: size < 8 yes Evaluation Count:18863 | no Evaluation Count:0 |
| 0-18863 |
389 | if (separators.contains(*uc)) evaluated: separators.contains(*uc) yes Evaluation Count:4062 | yes Evaluation Count:14801 |
| 4062-14801 |
390 | break; executed: break; Execution Count:4062 | 4062 |
391 | if (! ((uc->unicode() >= 'a' && uc->unicode() <= 'z') || evaluated: uc->unicode() >= 'a' yes Evaluation Count:9779 | yes Evaluation Count:5022 |
partially evaluated: uc->unicode() <= 'z' yes Evaluation Count:9779 | no Evaluation Count:0 |
| 0-9779 |
392 | (uc->unicode() >= 'A' && uc->unicode() <= 'Z') || evaluated: uc->unicode() >= 'A' yes Evaluation Count:5006 | yes Evaluation Count:16 |
partially evaluated: uc->unicode() <= 'Z' yes Evaluation Count:5006 | no Evaluation Count:0 |
| 0-5006 |
393 | (uc->unicode() >= '0' && uc->unicode() <= '9')) ) // latin only evaluated: uc->unicode() >= '0' yes Evaluation Count:15 | yes Evaluation Count:1 |
partially evaluated: uc->unicode() <= '9' yes Evaluation Count:15 | no Evaluation Count:0 |
| 0-15 |
394 | return false; executed: return false; Execution Count:1 | 1 |
395 | *pch++ = *uc++; executed (the execution status of this line is deduced): *pch++ = *uc++; | - |
396 | } executed: } Execution Count:14800 | 14800 |
397 | result->truncate(size); executed (the execution status of this line is deduced): result->truncate(size); | - |
398 | return true; executed: return true; Execution Count:7304 | 7304 |
399 | } | - |
400 | | - |
401 | bool qt_splitLocaleName(const QString &name, QString &lang, QString &script, QString &cntry) | - |
402 | { | - |
403 | const int length = name.length(); executed (the execution status of this line is deduced): const int length = name.length(); | - |
404 | | - |
405 | lang = script = cntry = QString(); executed (the execution status of this line is deduced): lang = script = cntry = QString(); | - |
406 | | - |
407 | const QString separators = QStringLiteral("_-.@"); executed (the execution status of this line is deduced): const QString separators = QString::fromUtf8("" "_-.@" "", sizeof("_-.@") - 1); | - |
408 | enum ParserState { NoState, LangState, ScriptState, CountryState }; executed (the execution status of this line is deduced): enum ParserState { NoState, LangState, ScriptState, CountryState }; | - |
409 | ParserState state = LangState; executed (the execution status of this line is deduced): ParserState state = LangState; | - |
410 | for (int i = 0; i < length && state != NoState; ) { evaluated: i < length yes Evaluation Count:8535 | yes Evaluation Count:3249 |
evaluated: state != NoState yes Evaluation Count:7305 | yes Evaluation Count:1230 |
| 1230-8535 |
411 | QString value; executed (the execution status of this line is deduced): QString value; | - |
412 | if (!parse_locale_tag(name, i, &value, separators) ||value.isEmpty()) evaluated: !parse_locale_tag(name, i, &value, separators) yes Evaluation Count:1 | yes Evaluation Count:7304 |
evaluated: value.isEmpty() yes Evaluation Count:4 | yes Evaluation Count:7300 |
| 1-7304 |
413 | break; executed: break; Execution Count:5 | 5 |
414 | QChar sep = i < length ? name.at(i) : QChar(); evaluated: i < length yes Evaluation Count:4058 | yes Evaluation Count:3242 |
| 3242-4058 |
415 | switch (state) { | - |
416 | case LangState: | - |
417 | if (!sep.isNull() && !separators.contains(sep)) { evaluated: !sep.isNull() yes Evaluation Count:2821 | yes Evaluation Count:1658 |
partially evaluated: !separators.contains(sep) no Evaluation Count:0 | yes Evaluation Count:2821 |
| 0-2821 |
418 | state = NoState; never executed (the execution status of this line is deduced): state = NoState; | - |
419 | break; | 0 |
420 | } | - |
421 | lang = value; executed (the execution status of this line is deduced): lang = value; | - |
422 | if (i == length) { evaluated: i == length yes Evaluation Count:1658 | yes Evaluation Count:2821 |
| 1658-2821 |
423 | // just language was specified | - |
424 | state = NoState; executed (the execution status of this line is deduced): state = NoState; | - |
425 | break; executed: break; Execution Count:1658 | 1658 |
426 | } | - |
427 | state = ScriptState; executed (the execution status of this line is deduced): state = ScriptState; | - |
428 | break; executed: break; Execution Count:2821 | 2821 |
429 | case ScriptState: { | - |
430 | QString scripts = QString::fromLatin1((const char *)script_code_list, sizeof(script_code_list)); executed (the execution status of this line is deduced): QString scripts = QString::fromLatin1((const char *)script_code_list, sizeof(script_code_list)); | - |
431 | if (value.length() == 4 && scripts.indexOf(value) % 4 == 0) { evaluated: value.length() == 4 yes Evaluation Count:12 | yes Evaluation Count:2802 |
partially evaluated: scripts.indexOf(value) % 4 == 0 yes Evaluation Count:12 | no Evaluation Count:0 |
| 0-2802 |
432 | // script name is always 4 characters | - |
433 | script = value; executed (the execution status of this line is deduced): script = value; | - |
434 | state = CountryState; executed (the execution status of this line is deduced): state = CountryState; | - |
435 | } else { executed: } Execution Count:12 | 12 |
436 | // it wasn't a script, maybe it is a country then? | - |
437 | cntry = value; executed (the execution status of this line is deduced): cntry = value; | - |
438 | state = NoState; executed (the execution status of this line is deduced): state = NoState; | - |
439 | } executed: } Execution Count:2802 | 2802 |
440 | break; executed: break; Execution Count:2814 | 2814 |
441 | } | - |
442 | case CountryState: | - |
443 | cntry = value; executed (the execution status of this line is deduced): cntry = value; | - |
444 | state = NoState; executed (the execution status of this line is deduced): state = NoState; | - |
445 | break; executed: break; Execution Count:7 | 7 |
446 | case NoState: | - |
447 | // shouldn't happen | - |
448 | qWarning("QLocale: This should never happen"); never executed (the execution status of this line is deduced): QMessageLogger("tools/qlocale.cpp", 448, __PRETTY_FUNCTION__).warning("QLocale: This should never happen"); | - |
449 | break; | 0 |
450 | } | - |
451 | ++i; executed (the execution status of this line is deduced): ++i; | - |
452 | } executed: } Execution Count:7300 | 7300 |
453 | return lang.length() == 2 || lang.length() == 3; executed: return lang.length() == 2 || lang.length() == 3; Execution Count:4484 | 4484 |
454 | } | - |
455 | | - |
456 | void QLocalePrivate::getLangAndCountry(const QString &name, QLocale::Language &lang, | - |
457 | QLocale::Script &script, QLocale::Country &cntry) | - |
458 | { | - |
459 | lang = QLocale::C; executed (the execution status of this line is deduced): lang = QLocale::C; | - |
460 | script = QLocale::AnyScript; executed (the execution status of this line is deduced): script = QLocale::AnyScript; | - |
461 | cntry = QLocale::AnyCountry; executed (the execution status of this line is deduced): cntry = QLocale::AnyCountry; | - |
462 | | - |
463 | QString lang_code; executed (the execution status of this line is deduced): QString lang_code; | - |
464 | QString script_code; executed (the execution status of this line is deduced): QString script_code; | - |
465 | QString cntry_code; executed (the execution status of this line is deduced): QString cntry_code; | - |
466 | if (!qt_splitLocaleName(name, lang_code, script_code, cntry_code)) evaluated: !qt_splitLocaleName(name, lang_code, script_code, cntry_code) yes Evaluation Count:1158 | yes Evaluation Count:3324 |
| 1158-3324 |
467 | return; executed: return; Execution Count:1158 | 1158 |
468 | | - |
469 | lang = QLocalePrivate::codeToLanguage(lang_code); executed (the execution status of this line is deduced): lang = QLocalePrivate::codeToLanguage(lang_code); | - |
470 | if (lang == QLocale::C) evaluated: lang == QLocale::C yes Evaluation Count:4 | yes Evaluation Count:3320 |
| 4-3320 |
471 | return; executed: return; Execution Count:4 | 4 |
472 | script = QLocalePrivate::codeToScript(script_code); executed (the execution status of this line is deduced): script = QLocalePrivate::codeToScript(script_code); | - |
473 | cntry = QLocalePrivate::codeToCountry(cntry_code); executed (the execution status of this line is deduced): cntry = QLocalePrivate::codeToCountry(cntry_code); | - |
474 | } executed: } Execution Count:3320 | 3320 |
475 | | - |
476 | static const QLocaleData *findLocaleData(const QString &name) | - |
477 | { | - |
478 | QLocale::Language lang; executed (the execution status of this line is deduced): QLocale::Language lang; | - |
479 | QLocale::Script script; executed (the execution status of this line is deduced): QLocale::Script script; | - |
480 | QLocale::Country cntry; executed (the execution status of this line is deduced): QLocale::Country cntry; | - |
481 | QLocalePrivate::getLangAndCountry(name, lang, script, cntry); executed (the execution status of this line is deduced): QLocalePrivate::getLangAndCountry(name, lang, script, cntry); | - |
482 | | - |
483 | return QLocaleData::findLocaleData(lang, script, cntry); executed: return QLocaleData::findLocaleData(lang, script, cntry); Execution Count:4482 | 4482 |
484 | } | - |
485 | | - |
486 | QString qt_readEscapedFormatString(const QString &format, int *idx) | - |
487 | { | - |
488 | int &i = *idx; executed (the execution status of this line is deduced): int &i = *idx; | - |
489 | | - |
490 | Q_ASSERT(format.at(i) == QLatin1Char('\'')); executed (the execution status of this line is deduced): qt_noop(); | - |
491 | ++i; executed (the execution status of this line is deduced): ++i; | - |
492 | if (i == format.size()) evaluated: i == format.size() yes Evaluation Count:14 | yes Evaluation Count:1527 |
| 14-1527 |
493 | return QString(); executed: return QString(); Execution Count:14 | 14 |
494 | if (format.at(i).unicode() == '\'') { // "''" outside of a quoted stirng evaluated: format.at(i).unicode() == '\'' yes Evaluation Count:14 | yes Evaluation Count:1513 |
| 14-1513 |
495 | ++i; executed (the execution status of this line is deduced): ++i; | - |
496 | return QLatin1String("'"); executed: return QLatin1String("'"); Execution Count:14 | 14 |
497 | } | - |
498 | | - |
499 | QString result; executed (the execution status of this line is deduced): QString result; | - |
500 | | - |
501 | while (i < format.size()) { evaluated: i < format.size() yes Evaluation Count:4918 | yes Evaluation Count:1250 |
| 1250-4918 |
502 | if (format.at(i).unicode() == '\'') { evaluated: format.at(i).unicode() == '\'' yes Evaluation Count:263 | yes Evaluation Count:4655 |
| 263-4655 |
503 | if (i + 1 < format.size() && format.at(i + 1).unicode() == '\'') { evaluated: i + 1 < format.size() yes Evaluation Count:56 | yes Evaluation Count:207 |
partially evaluated: format.at(i + 1).unicode() == '\'' no Evaluation Count:0 | yes Evaluation Count:56 |
| 0-207 |
504 | // "''" inside of a quoted string | - |
505 | result.append(QLatin1Char('\'')); never executed (the execution status of this line is deduced): result.append(QLatin1Char('\'')); | - |
506 | i += 2; never executed (the execution status of this line is deduced): i += 2; | - |
507 | } else { | 0 |
508 | break; executed: break; Execution Count:263 | 263 |
509 | } | - |
510 | } else { | - |
511 | result.append(format.at(i++)); executed (the execution status of this line is deduced): result.append(format.at(i++)); | - |
512 | } executed: } Execution Count:4655 | 4655 |
513 | } | - |
514 | if (i < format.size()) evaluated: i < format.size() yes Evaluation Count:263 | yes Evaluation Count:1250 |
| 263-1250 |
515 | ++i; executed: ++i; Execution Count:263 | 263 |
516 | | - |
517 | return result; executed: return result; Execution Count:1513 | 1513 |
518 | } | - |
519 | | - |
520 | int qt_repeatCount(const QString &s, int i) | - |
521 | { | - |
522 | QChar c = s.at(i); executed (the execution status of this line is deduced): QChar c = s.at(i); | - |
523 | int j = i + 1; executed (the execution status of this line is deduced): int j = i + 1; | - |
524 | while (j < s.size() && s.at(j) == c) evaluated: j < s.size() yes Evaluation Count:69815 | yes Evaluation Count:4386 |
evaluated: s.at(j) == c yes Evaluation Count:25296 | yes Evaluation Count:44519 |
| 4386-69815 |
525 | ++j; executed: ++j; Execution Count:25296 | 25296 |
526 | return j - i; executed: return j - i; Execution Count:48905 | 48905 |
527 | } | - |
528 | | - |
529 | static const QLocaleData *default_data = 0; | - |
530 | static uint default_number_options = 0; | - |
531 | | - |
532 | #ifndef QT_NO_SYSTEMLOCALE | - |
533 | | - |
534 | | - |
535 | /****************************************************************************** | - |
536 | ** Default system locale behavior | - |
537 | */ | - |
538 | | - |
539 | /*! | - |
540 | Constructs a QSystemLocale object. The constructor will automatically | - |
541 | install this object as the system locale and remove any earlier installed | - |
542 | system locales. | - |
543 | */ | - |
544 | QSystemLocale::QSystemLocale() | - |
545 | { | - |
546 | delete _systemLocale; never executed (the execution status of this line is deduced): delete _systemLocale; | - |
547 | _systemLocale = this; never executed (the execution status of this line is deduced): _systemLocale = this; | - |
548 | | - |
549 | if (system_data) never evaluated: system_data | 0 |
550 | system_data->m_language_id = 0; never executed: system_data->m_language_id = 0; | 0 |
551 | } | 0 |
552 | | - |
553 | /*! | - |
554 | \internal | - |
555 | */ | - |
556 | QSystemLocale::QSystemLocale(bool) | - |
557 | { } | - |
558 | | - |
559 | /*! | - |
560 | Deletes the object. | - |
561 | */ | - |
562 | QSystemLocale::~QSystemLocale() | - |
563 | { | - |
564 | if (_systemLocale == this) { partially evaluated: _systemLocale == this no Evaluation Count:0 | yes Evaluation Count:233 |
| 0-233 |
565 | _systemLocale = 0; never executed (the execution status of this line is deduced): _systemLocale = 0; | - |
566 | | - |
567 | if (system_data) never evaluated: system_data | 0 |
568 | system_data->m_language_id = 0; never executed: system_data->m_language_id = 0; | 0 |
569 | } | 0 |
570 | } executed: } Execution Count:233 | 233 |
571 | | - |
572 | static const QSystemLocale *systemLocale() | - |
573 | { | - |
574 | if (_systemLocale) partially evaluated: _systemLocale no Evaluation Count:0 | yes Evaluation Count:17754 |
| 0-17754 |
575 | return _systemLocale; never executed: return _systemLocale; | 0 |
576 | return QSystemLocale_globalSystemLocale(); executed: return QSystemLocale_globalSystemLocale(); Execution Count:17754 | 17754 |
577 | } | - |
578 | | - |
579 | void QLocalePrivate::updateSystemPrivate() | - |
580 | { | - |
581 | const QSystemLocale *sys_locale = systemLocale(); executed (the execution status of this line is deduced): const QSystemLocale *sys_locale = systemLocale(); | - |
582 | if (!system_data) partially evaluated: !system_data yes Evaluation Count:45 | no Evaluation Count:0 |
| 0-45 |
583 | system_data = globalLocaleData(); executed: system_data = globalLocaleData(); Execution Count:45 | 45 |
584 | | - |
585 | // tell the object that the system locale has changed. | - |
586 | sys_locale->query(QSystemLocale::LocaleChanged, QVariant()); executed (the execution status of this line is deduced): sys_locale->query(QSystemLocale::LocaleChanged, QVariant()); | - |
587 | | - |
588 | *system_data = *sys_locale->fallbackUiLocale().d->m_data; executed (the execution status of this line is deduced): *system_data = *sys_locale->fallbackUiLocale().d->m_data; | - |
589 | | - |
590 | QVariant res = sys_locale->query(QSystemLocale::LanguageId, QVariant()); executed (the execution status of this line is deduced): QVariant res = sys_locale->query(QSystemLocale::LanguageId, QVariant()); | - |
591 | if (!res.isNull()) { partially evaluated: !res.isNull() no Evaluation Count:0 | yes Evaluation Count:45 |
| 0-45 |
592 | system_data->m_language_id = res.toInt(); never executed (the execution status of this line is deduced): system_data->m_language_id = res.toInt(); | - |
593 | system_data->m_script_id = QLocale::AnyScript; // default for compatibility never executed (the execution status of this line is deduced): system_data->m_script_id = QLocale::AnyScript; | - |
594 | } | 0 |
595 | res = sys_locale->query(QSystemLocale::CountryId, QVariant()); executed (the execution status of this line is deduced): res = sys_locale->query(QSystemLocale::CountryId, QVariant()); | - |
596 | if (!res.isNull()) { partially evaluated: !res.isNull() no Evaluation Count:0 | yes Evaluation Count:45 |
| 0-45 |
597 | system_data->m_country_id = res.toInt(); never executed (the execution status of this line is deduced): system_data->m_country_id = res.toInt(); | - |
598 | system_data->m_script_id = QLocale::AnyScript; // default for compatibility never executed (the execution status of this line is deduced): system_data->m_script_id = QLocale::AnyScript; | - |
599 | } | 0 |
600 | res = sys_locale->query(QSystemLocale::ScriptId, QVariant()); executed (the execution status of this line is deduced): res = sys_locale->query(QSystemLocale::ScriptId, QVariant()); | - |
601 | if (!res.isNull()) partially evaluated: !res.isNull() no Evaluation Count:0 | yes Evaluation Count:45 |
| 0-45 |
602 | system_data->m_script_id = res.toInt(); never executed: system_data->m_script_id = res.toInt(); | 0 |
603 | | - |
604 | res = sys_locale->query(QSystemLocale::DecimalPoint, QVariant()); executed (the execution status of this line is deduced): res = sys_locale->query(QSystemLocale::DecimalPoint, QVariant()); | - |
605 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:45 | no Evaluation Count:0 |
| 0-45 |
606 | system_data->m_decimal = res.toString().at(0).unicode(); executed: system_data->m_decimal = res.toString().at(0).unicode(); Execution Count:45 | 45 |
607 | | - |
608 | res = sys_locale->query(QSystemLocale::GroupSeparator, QVariant()); executed (the execution status of this line is deduced): res = sys_locale->query(QSystemLocale::GroupSeparator, QVariant()); | - |
609 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:45 | no Evaluation Count:0 |
| 0-45 |
610 | system_data->m_group = res.toString().at(0).unicode(); executed: system_data->m_group = res.toString().at(0).unicode(); Execution Count:45 | 45 |
611 | | - |
612 | res = sys_locale->query(QSystemLocale::ZeroDigit, QVariant()); executed (the execution status of this line is deduced): res = sys_locale->query(QSystemLocale::ZeroDigit, QVariant()); | - |
613 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:45 | no Evaluation Count:0 |
| 0-45 |
614 | system_data->m_zero = res.toString().at(0).unicode(); executed: system_data->m_zero = res.toString().at(0).unicode(); Execution Count:45 | 45 |
615 | | - |
616 | res = sys_locale->query(QSystemLocale::NegativeSign, QVariant()); executed (the execution status of this line is deduced): res = sys_locale->query(QSystemLocale::NegativeSign, QVariant()); | - |
617 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:45 | no Evaluation Count:0 |
| 0-45 |
618 | system_data->m_minus = res.toString().at(0).unicode(); executed: system_data->m_minus = res.toString().at(0).unicode(); Execution Count:45 | 45 |
619 | | - |
620 | res = sys_locale->query(QSystemLocale::PositiveSign, QVariant()); executed (the execution status of this line is deduced): res = sys_locale->query(QSystemLocale::PositiveSign, QVariant()); | - |
621 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:45 | no Evaluation Count:0 |
| 0-45 |
622 | system_data->m_plus = res.toString().at(0).unicode(); executed: system_data->m_plus = res.toString().at(0).unicode(); Execution Count:45 | 45 |
623 | } executed: } Execution Count:45 | 45 |
624 | #endif | - |
625 | | - |
626 | static const QLocaleData *systemData() | - |
627 | { | - |
628 | #ifndef QT_NO_SYSTEMLOCALE | - |
629 | // copy over the information from the fallback locale and modify | - |
630 | if (!system_data || system_data->m_language_id == 0) evaluated: !system_data yes Evaluation Count:45 | yes Evaluation Count:49422 |
partially evaluated: system_data->m_language_id == 0 no Evaluation Count:0 | yes Evaluation Count:49422 |
| 0-49422 |
631 | QLocalePrivate::updateSystemPrivate(); executed: QLocalePrivate::updateSystemPrivate(); Execution Count:45 | 45 |
632 | | - |
633 | return system_data; executed: return system_data; Execution Count:49467 | 49467 |
634 | #else | - |
635 | return locale_data; | - |
636 | #endif | - |
637 | } | - |
638 | | - |
639 | static const QLocaleData *defaultData() | - |
640 | { | - |
641 | if (!default_data) evaluated: !default_data yes Evaluation Count:42 | yes Evaluation Count:2158488 |
| 42-2158488 |
642 | default_data = systemData(); executed: default_data = systemData(); Execution Count:42 | 42 |
643 | return default_data; executed: return default_data; Execution Count:2158530 | 2158530 |
644 | } | - |
645 | | - |
646 | static QString getLocaleListData(const ushort *data, int size, int index) | - |
647 | { | - |
648 | static const ushort separator = ';'; | - |
649 | while (index && size > 0) { evaluated: index yes Evaluation Count:74583 | yes Evaluation Count:17252 |
partially evaluated: size > 0 yes Evaluation Count:74583 | no Evaluation Count:0 |
| 0-74583 |
650 | while (*data != separator) evaluated: *data != separator yes Evaluation Count:293784 | yes Evaluation Count:74583 |
| 74583-293784 |
651 | ++data, --size; executed: ++data, --size; Execution Count:293784 | 293784 |
652 | --index; executed (the execution status of this line is deduced): --index; | - |
653 | ++data; executed (the execution status of this line is deduced): ++data; | - |
654 | --size; executed (the execution status of this line is deduced): --size; | - |
655 | } executed: } Execution Count:74583 | 74583 |
656 | const ushort *end = data; executed (the execution status of this line is deduced): const ushort *end = data; | - |
657 | while (size > 0 && *end != separator) partially evaluated: size > 0 yes Evaluation Count:87176 | no Evaluation Count:0 |
evaluated: *end != separator yes Evaluation Count:69924 | yes Evaluation Count:17252 |
| 0-87176 |
658 | ++end, --size; executed: ++end, --size; Execution Count:69924 | 69924 |
659 | if (end-data == 0) partially evaluated: end-data == 0 no Evaluation Count:0 | yes Evaluation Count:17252 |
| 0-17252 |
660 | return QString(); never executed: return QString(); | 0 |
661 | return QString::fromRawData(reinterpret_cast<const QChar*>(data), end-data); executed: return QString::fromRawData(reinterpret_cast<const QChar*>(data), end-data); Execution Count:17252 | 17252 |
662 | } | - |
663 | | - |
664 | static inline QString getLocaleData(const ushort *data, int size) | - |
665 | { | - |
666 | return size ? QString::fromRawData(reinterpret_cast<const QChar*>(data), size) : QString(); executed: return size ? QString::fromRawData(reinterpret_cast<const QChar*>(data), size) : QString(); Execution Count:6269 | 6269 |
667 | } | - |
668 | | - |
669 | | - |
670 | #ifndef QT_NO_DATASTREAM | - |
671 | QDataStream &operator<<(QDataStream &ds, const QLocale &l) | - |
672 | { | - |
673 | ds << l.name(); executed (the execution status of this line is deduced): ds << l.name(); | - |
674 | return ds; executed: return ds; Execution Count:3 | 3 |
675 | } | - |
676 | | - |
677 | QDataStream &operator>>(QDataStream &ds, QLocale &l) | - |
678 | { | - |
679 | QString s; executed (the execution status of this line is deduced): QString s; | - |
680 | ds >> s; executed (the execution status of this line is deduced): ds >> s; | - |
681 | l = QLocale(s); executed (the execution status of this line is deduced): l = QLocale(s); | - |
682 | return ds; executed: return ds; Execution Count:7 | 7 |
683 | } | - |
684 | #endif // QT_NO_DATASTREAM | - |
685 | | - |
686 | | - |
687 | static const int locale_data_size = sizeof(locale_data)/sizeof(QLocaleData) - 1; | - |
688 | | - |
689 | const QLocaleData *QLocalePrivate::dataPointerForIndex(quint16 index) | - |
690 | { | - |
691 | #ifndef QT_NO_SYSTEMLOCALE | - |
692 | Q_ASSERT(index <= locale_data_size); executed (the execution status of this line is deduced): qt_noop(); | - |
693 | if (index == locale_data_size) evaluated: index == locale_data_size yes Evaluation Count:2151948 | yes Evaluation Count:13838436 |
| 2151948-13838436 |
694 | return system_data; executed: return system_data; Execution Count:2151948 | 2151948 |
695 | #else | - |
696 | Q_ASSERT(index < locale_data_size); | - |
697 | #endif | - |
698 | | - |
699 | return &locale_data[index]; executed: return &locale_data[index]; Execution Count:13838438 | 13838438 |
700 | } | - |
701 | | - |
702 | static quint16 localeDataIndex(const QLocaleData *p) | - |
703 | { | - |
704 | #ifndef QT_NO_SYSTEMLOCALE | - |
705 | Q_ASSERT((p >= locale_data && p - locale_data < locale_data_size) executed (the execution status of this line is deduced): qt_noop(); | - |
706 | || (p != 0 && p == system_data)); | - |
707 | quint16 index = p == system_data ? locale_data_size : p - locale_data; evaluated: p == system_data yes Evaluation Count:2151948 | yes Evaluation Count:13838438 |
| 2151948-13838438 |
708 | #else | - |
709 | Q_ASSERT(p >= locale_data && p - locale_data < locale_data_size); | - |
710 | quint16 index = p - locale_data; | - |
711 | #endif | - |
712 | | - |
713 | return index; executed: return index; Execution Count:15990386 | 15990386 |
714 | } | - |
715 | | - |
716 | /*! | - |
717 | \internal | - |
718 | */ | - |
719 | QLocale::QLocale(QLocalePrivate &dd) | - |
720 | : d(&dd) | - |
721 | {} executed: } Execution Count:4691 | 4691 |
722 | | - |
723 | | - |
724 | /*! | - |
725 | Constructs a QLocale object with the specified \a name, | - |
726 | which has the format | - |
727 | "language[_script][_country][.codeset][@modifier]" or "C", where: | - |
728 | | - |
729 | \list | - |
730 | \li language is a lowercase, two-letter, ISO 639 language code (also some three-letter codes), | - |
731 | \li script is a titlecase, four-letter, ISO 15924 script code, | - |
732 | \li country is an uppercase, two-letter, ISO 3166 country code (also "419" as defined by United Nations), | - |
733 | \li and codeset and modifier are ignored. | - |
734 | \endlist | - |
735 | | - |
736 | The separator can be either underscore or a minus sign. | - |
737 | | - |
738 | If the string violates the locale format, or language is not | - |
739 | a valid ISO 639 code, the "C" locale is used instead. If country | - |
740 | is not present, or is not a valid ISO 3166 code, the most | - |
741 | appropriate country is chosen for the specified language. | - |
742 | | - |
743 | The language, script and country codes are converted to their respective | - |
744 | \c Language, \c Script and \c Country enums. After this conversion is | - |
745 | performed, the constructor behaves exactly like QLocale(Country, Script, | - |
746 | Language). | - |
747 | | - |
748 | This constructor is much slower than QLocale(Country, Script, Language). | - |
749 | | - |
750 | \sa bcp47Name() | - |
751 | */ | - |
752 | | - |
753 | QLocale::QLocale(const QString &name) | - |
754 | : d(new QLocalePrivate(localeDataIndex(findLocaleData(name)))) | - |
755 | { | - |
756 | } executed: } Execution Count:4482 | 4482 |
757 | | - |
758 | /*! | - |
759 | Constructs a QLocale object initialized with the default locale. If | - |
760 | no default locale was set using setDefault(), this locale will | - |
761 | be the same as the one returned by system(). | - |
762 | | - |
763 | \sa setDefault() | - |
764 | */ | - |
765 | | - |
766 | QLocale::QLocale() | - |
767 | : d(new QLocalePrivate(localeDataIndex(defaultData()), default_number_options)) | - |
768 | { | - |
769 | } executed: } Execution Count:2158518 | 2158518 |
770 | | - |
771 | /*! | - |
772 | Constructs a QLocale object with the specified \a language and \a | - |
773 | country. | - |
774 | | - |
775 | \list | - |
776 | \li If the language/country pair is found in the database, it is used. | - |
777 | \li If the language is found but the country is not, or if the country | - |
778 | is \c AnyCountry, the language is used with the most | - |
779 | appropriate available country (for example, Germany for German), | - |
780 | \li If neither the language nor the country are found, QLocale | - |
781 | defaults to the default locale (see setDefault()). | - |
782 | \endlist | - |
783 | | - |
784 | The language and country that are actually used can be queried | - |
785 | using language() and country(). | - |
786 | | - |
787 | \sa setDefault(), language(), country() | - |
788 | */ | - |
789 | | - |
790 | QLocale::QLocale(Language language, Country country) | - |
791 | { | - |
792 | const QLocaleData *data = QLocaleData::findLocaleData(language, QLocale::AnyScript, country); executed (the execution status of this line is deduced): const QLocaleData *data = QLocaleData::findLocaleData(language, QLocale::AnyScript, country); | - |
793 | int index; executed (the execution status of this line is deduced): int index; | - |
794 | int numberOptions = 0; executed (the execution status of this line is deduced): int numberOptions = 0; | - |
795 | | - |
796 | // If not found, should default to system | - |
797 | if (data->m_language_id == QLocale::C && language != QLocale::C) { evaluated: data->m_language_id == QLocale::C yes Evaluation Count:13822168 | yes Evaluation Count:527 |
evaluated: language != QLocale::C yes Evaluation Count:12 | yes Evaluation Count:13822156 |
| 12-13822168 |
798 | numberOptions = default_number_options; executed (the execution status of this line is deduced): numberOptions = default_number_options; | - |
799 | index = localeDataIndex(defaultData()); executed (the execution status of this line is deduced): index = localeDataIndex(defaultData()); | - |
800 | } else { executed: } Execution Count:12 | 12 |
801 | index = localeDataIndex(data); executed (the execution status of this line is deduced): index = localeDataIndex(data); | - |
802 | } executed: } Execution Count:13822683 | 13822683 |
803 | d = new QLocalePrivate(index, numberOptions); executed (the execution status of this line is deduced): d = new QLocalePrivate(index, numberOptions); | - |
804 | } executed: } Execution Count:13822696 | 13822696 |
805 | \ | - |
806 | /*! | - |
807 | \since 4.8 | - |
808 | | - |
809 | Constructs a QLocale object with the specified \a language, \a script and | - |
810 | \a country. | - |
811 | | - |
812 | \list | - |
813 | \li If the language/script/country is found in the database, it is used. | - |
814 | \li If both \a script is AnyScript and \a country is AnyCountry, the | - |
815 | language is used with the most appropriate available script and country | - |
816 | (for example, Germany for German), | - |
817 | \li If either \a script is AnyScript or \a country is AnyCountry, the | - |
818 | language is used with the first locale that matches the given \a script | - |
819 | and \a country. | - |
820 | \li If neither the language nor the country are found, QLocale | - |
821 | defaults to the default locale (see setDefault()). | - |
822 | \endlist | - |
823 | | - |
824 | The language, script and country that are actually used can be queried | - |
825 | using language(), script() and country(). | - |
826 | | - |
827 | \sa setDefault(), language(), script(), country() | - |
828 | */ | - |
829 | | - |
830 | QLocale::QLocale(Language language, Script script, Country country) | - |
831 | { | - |
832 | const QLocaleData *data = QLocaleData::findLocaleData(language, script, country); never executed (the execution status of this line is deduced): const QLocaleData *data = QLocaleData::findLocaleData(language, script, country); | - |
833 | int index; never executed (the execution status of this line is deduced): int index; | - |
834 | int numberOptions = 0; never executed (the execution status of this line is deduced): int numberOptions = 0; | - |
835 | | - |
836 | // If not found, should default to system | - |
837 | if (data->m_language_id == QLocale::C && language != QLocale::C) { never evaluated: data->m_language_id == QLocale::C never evaluated: language != QLocale::C | 0 |
838 | numberOptions = default_number_options; never executed (the execution status of this line is deduced): numberOptions = default_number_options; | - |
839 | index = localeDataIndex(defaultData()); never executed (the execution status of this line is deduced): index = localeDataIndex(defaultData()); | - |
840 | } else { | 0 |
841 | index = localeDataIndex(data); never executed (the execution status of this line is deduced): index = localeDataIndex(data); | - |
842 | } | 0 |
843 | d = new QLocalePrivate(index, numberOptions); never executed (the execution status of this line is deduced): d = new QLocalePrivate(index, numberOptions); | - |
844 | } | 0 |
845 | | - |
846 | /*! | - |
847 | Constructs a QLocale object as a copy of \a other. | - |
848 | */ | - |
849 | | - |
850 | QLocale::QLocale(const QLocale &other) | - |
851 | { | - |
852 | d = other.d; executed (the execution status of this line is deduced): d = other.d; | - |
853 | } executed: } Execution Count:94582 | 94582 |
854 | | - |
855 | /*! | - |
856 | Destructor | - |
857 | */ | - |
858 | | - |
859 | QLocale::~QLocale() | - |
860 | { | - |
861 | } | - |
862 | | - |
863 | /*! | - |
864 | Assigns \a other to this QLocale object and returns a reference | - |
865 | to this QLocale object. | - |
866 | */ | - |
867 | | - |
868 | QLocale &QLocale::operator=(const QLocale &other) | - |
869 | { | - |
870 | d = other.d; executed (the execution status of this line is deduced): d = other.d; | - |
871 | return *this; executed: return *this; Execution Count:1169786 | 1169786 |
872 | } | - |
873 | | - |
874 | bool QLocale::operator==(const QLocale &other) const | - |
875 | { | - |
876 | return d->m_data == other.d->m_data && d->m_numberOptions == other.d->m_numberOptions; executed: return d->m_data == other.d->m_data && d->m_numberOptions == other.d->m_numberOptions; Execution Count:43165 | 43165 |
877 | } | - |
878 | | - |
879 | bool QLocale::operator!=(const QLocale &other) const | - |
880 | { | - |
881 | return d->m_data != other.d->m_data || d->m_numberOptions != other.d->m_numberOptions; executed: return d->m_data != other.d->m_data || d->m_numberOptions != other.d->m_numberOptions; Execution Count:26138 | 26138 |
882 | } | - |
883 | | - |
884 | /*! | - |
885 | \since 4.2 | - |
886 | | - |
887 | Sets the \a options related to number conversions for this | - |
888 | QLocale instance. | - |
889 | */ | - |
890 | void QLocale::setNumberOptions(NumberOptions options) | - |
891 | { | - |
892 | d->m_numberOptions = options; executed (the execution status of this line is deduced): d->m_numberOptions = options; | - |
893 | } executed: } Execution Count:42303 | 42303 |
894 | | - |
895 | /*! | - |
896 | \since 4.2 | - |
897 | | - |
898 | Returns the options related to number conversions for this | - |
899 | QLocale instance. | - |
900 | | - |
901 | By default, no options are set for the standard locales. | - |
902 | */ | - |
903 | QLocale::NumberOptions QLocale::numberOptions() const | - |
904 | { | - |
905 | return static_cast<NumberOption>(d->m_numberOptions); executed: return static_cast<NumberOption>(d->m_numberOptions); Execution Count:1847 | 1847 |
906 | } | - |
907 | | - |
908 | /*! | - |
909 | \since 4.8 | - |
910 | | - |
911 | Returns \a str quoted according to the current locale using the given | - |
912 | quotation \a style. | - |
913 | */ | - |
914 | QString QLocale::quoteString(const QString &str, QuotationStyle style) const | - |
915 | { | - |
916 | return quoteString(&str, style); executed: return quoteString(&str, style); Execution Count:4 | 4 |
917 | } | - |
918 | | - |
919 | /*! | - |
920 | \since 4.8 | - |
921 | | - |
922 | \overload | - |
923 | */ | - |
924 | QString QLocale::quoteString(const QStringRef &str, QuotationStyle style) const | - |
925 | { | - |
926 | #ifndef QT_NO_SYSTEMLOCALE | - |
927 | if (d->m_data == systemData()) { partially evaluated: d->m_data == systemData() no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
928 | QVariant res; never executed (the execution status of this line is deduced): QVariant res; | - |
929 | if (style == QLocale::AlternateQuotation) never evaluated: style == QLocale::AlternateQuotation | 0 |
930 | res = systemLocale()->query(QSystemLocale::StringToAlternateQuotation, QVariant::fromValue(str)); never executed: res = systemLocale()->query(QSystemLocale::StringToAlternateQuotation, QVariant::fromValue(str)); | 0 |
931 | if (res.isNull() || style == QLocale::StandardQuotation) never evaluated: res.isNull() never evaluated: style == QLocale::StandardQuotation | 0 |
932 | res = systemLocale()->query(QSystemLocale::StringToStandardQuotation, QVariant::fromValue(str)); never executed: res = systemLocale()->query(QSystemLocale::StringToStandardQuotation, QVariant::fromValue(str)); | 0 |
933 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
934 | return res.toString(); never executed: return res.toString(); | 0 |
935 | } | 0 |
936 | #endif | - |
937 | | - |
938 | if (style == QLocale::StandardQuotation) evaluated: style == QLocale::StandardQuotation yes Evaluation Count:2 | yes Evaluation Count:2 |
| 2 |
939 | return QChar(d->m_data->m_quotation_start) % str % QChar(d->m_data->m_quotation_end); executed: return QChar(d->m_data->m_quotation_start) % str % QChar(d->m_data->m_quotation_end); Execution Count:2 | 2 |
940 | else | - |
941 | return QChar(d->m_data->m_alternate_quotation_start) % str % QChar(d->m_data->m_alternate_quotation_end); executed: return QChar(d->m_data->m_alternate_quotation_start) % str % QChar(d->m_data->m_alternate_quotation_end); Execution Count:2 | 2 |
942 | } | - |
943 | | - |
944 | /*! | - |
945 | \since 4.8 | - |
946 | | - |
947 | Returns a string that represents a join of a given \a list of strings with | - |
948 | a separator defined by the locale. | - |
949 | */ | - |
950 | QString QLocale::createSeparatedList(const QStringList &list) const | - |
951 | { | - |
952 | #ifndef QT_NO_SYSTEMLOCALE | - |
953 | if (d->m_data == systemData()) { partially evaluated: d->m_data == systemData() no Evaluation Count:0 | yes Evaluation Count:15 |
| 0-15 |
954 | QVariant res; never executed (the execution status of this line is deduced): QVariant res; | - |
955 | res = systemLocale()->query(QSystemLocale::ListToSeparatedString, QVariant::fromValue(list)); never executed (the execution status of this line is deduced): res = systemLocale()->query(QSystemLocale::ListToSeparatedString, QVariant::fromValue(list)); | - |
956 | | - |
957 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
958 | return res.toString(); never executed: return res.toString(); | 0 |
959 | } | 0 |
960 | #endif | - |
961 | | - |
962 | const int size = list.size(); executed (the execution status of this line is deduced): const int size = list.size(); | - |
963 | if (size == 1) { evaluated: size == 1 yes Evaluation Count:3 | yes Evaluation Count:12 |
| 3-12 |
964 | return list.at(0); executed: return list.at(0); Execution Count:3 | 3 |
965 | } else if (size == 2) { evaluated: size == 2 yes Evaluation Count:3 | yes Evaluation Count:9 |
| 3-9 |
966 | QString format = getLocaleData(list_pattern_part_data + d->m_data->m_list_pattern_part_two_idx, d->m_data->m_list_pattern_part_two_size); executed (the execution status of this line is deduced): QString format = getLocaleData(list_pattern_part_data + d->m_data->m_list_pattern_part_two_idx, d->m_data->m_list_pattern_part_two_size); | - |
967 | return format.arg(list.at(0), list.at(1)); executed: return format.arg(list.at(0), list.at(1)); Execution Count:3 | 3 |
968 | } else if (size > 2) { evaluated: size > 2 yes Evaluation Count:6 | yes Evaluation Count:3 |
| 3-6 |
969 | QString formatStart = getLocaleData(list_pattern_part_data + d->m_data->m_list_pattern_part_start_idx, d->m_data->m_list_pattern_part_start_size); executed (the execution status of this line is deduced): QString formatStart = getLocaleData(list_pattern_part_data + d->m_data->m_list_pattern_part_start_idx, d->m_data->m_list_pattern_part_start_size); | - |
970 | QString formatMid = getLocaleData(list_pattern_part_data + d->m_data->m_list_pattern_part_mid_idx, d->m_data->m_list_pattern_part_mid_size); executed (the execution status of this line is deduced): QString formatMid = getLocaleData(list_pattern_part_data + d->m_data->m_list_pattern_part_mid_idx, d->m_data->m_list_pattern_part_mid_size); | - |
971 | QString formatEnd = getLocaleData(list_pattern_part_data + d->m_data->m_list_pattern_part_end_idx, d->m_data->m_list_pattern_part_end_size); executed (the execution status of this line is deduced): QString formatEnd = getLocaleData(list_pattern_part_data + d->m_data->m_list_pattern_part_end_idx, d->m_data->m_list_pattern_part_end_size); | - |
972 | QString result = formatStart.arg(list.at(0), list.at(1)); executed (the execution status of this line is deduced): QString result = formatStart.arg(list.at(0), list.at(1)); | - |
973 | for (int i = 2; i < size - 1; ++i) evaluated: i < size - 1 yes Evaluation Count:3 | yes Evaluation Count:6 |
| 3-6 |
974 | result = formatMid.arg(result, list.at(i)); executed: result = formatMid.arg(result, list.at(i)); Execution Count:3 | 3 |
975 | result = formatEnd.arg(result, list.at(size - 1)); executed (the execution status of this line is deduced): result = formatEnd.arg(result, list.at(size - 1)); | - |
976 | return result; executed: return result; Execution Count:6 | 6 |
977 | } | - |
978 | | - |
979 | return QString(); executed: return QString(); Execution Count:3 | 3 |
980 | } | - |
981 | | - |
982 | /*! | - |
983 | \nonreentrant | - |
984 | | - |
985 | Sets the global default locale to \a locale. These | - |
986 | values are used when a QLocale object is constructed with | - |
987 | no arguments. If this function is not called, the system's | - |
988 | locale is used. | - |
989 | | - |
990 | \warning In a multithreaded application, the default locale | - |
991 | should be set at application startup, before any non-GUI threads | - |
992 | are created. | - |
993 | | - |
994 | \sa system(), c() | - |
995 | */ | - |
996 | | - |
997 | void QLocale::setDefault(const QLocale &locale) | - |
998 | { | - |
999 | default_data = locale.d->m_data; executed (the execution status of this line is deduced): default_data = locale.d->m_data; | - |
1000 | default_number_options = locale.numberOptions(); executed (the execution status of this line is deduced): default_number_options = locale.numberOptions(); | - |
1001 | } executed: } Execution Count:1633 | 1633 |
1002 | | - |
1003 | /*! | - |
1004 | Returns the language of this locale. | - |
1005 | | - |
1006 | \sa script(), country(), languageToString(), bcp47Name() | - |
1007 | */ | - |
1008 | QLocale::Language QLocale::language() const | - |
1009 | { | - |
1010 | return Language(d->languageId()); executed: return Language(d->languageId()); Execution Count:11985 | 11985 |
1011 | } | - |
1012 | | - |
1013 | /*! | - |
1014 | \since 4.8 | - |
1015 | | - |
1016 | Returns the script of this locale. | - |
1017 | | - |
1018 | \sa language(), country(), languageToString(), scriptToString(), bcp47Name() | - |
1019 | */ | - |
1020 | QLocale::Script QLocale::script() const | - |
1021 | { | - |
1022 | return Script(d->m_data->m_script_id); executed: return Script(d->m_data->m_script_id); Execution Count:21 | 21 |
1023 | } | - |
1024 | | - |
1025 | /*! | - |
1026 | Returns the country of this locale. | - |
1027 | | - |
1028 | \sa language(), script(), countryToString(), bcp47Name() | - |
1029 | */ | - |
1030 | QLocale::Country QLocale::country() const | - |
1031 | { | - |
1032 | return Country(d->countryId()); executed: return Country(d->countryId()); Execution Count:10563 | 10563 |
1033 | } | - |
1034 | | - |
1035 | /*! | - |
1036 | Returns the language and country of this locale as a | - |
1037 | string of the form "language_country", where | - |
1038 | language is a lowercase, two-letter ISO 639 language code, | - |
1039 | and country is an uppercase, two- or three-letter ISO 3166 country code. | - |
1040 | | - |
1041 | Note that even if QLocale object was constructed with an explicit script, | - |
1042 | name() will not contain it for compatibility reasons. Use bcp47Name() instead | - |
1043 | if you need a full locale name. | - |
1044 | | - |
1045 | \sa QLocale(), language(), script(), country(), bcp47Name() | - |
1046 | */ | - |
1047 | | - |
1048 | QString QLocale::name() const | - |
1049 | { | - |
1050 | Language l = language(); executed (the execution status of this line is deduced): Language l = language(); | - |
1051 | | - |
1052 | QString result = d->languageCode(); executed (the execution status of this line is deduced): QString result = d->languageCode(); | - |
1053 | | - |
1054 | if (l == C) evaluated: l == C yes Evaluation Count:101 | yes Evaluation Count:2514 |
| 101-2514 |
1055 | return result; executed: return result; Execution Count:101 | 101 |
1056 | | - |
1057 | Country c = country(); executed (the execution status of this line is deduced): Country c = country(); | - |
1058 | if (c == AnyCountry) partially evaluated: c == AnyCountry no Evaluation Count:0 | yes Evaluation Count:2514 |
| 0-2514 |
1059 | return result; never executed: return result; | 0 |
1060 | | - |
1061 | result.append(QLatin1Char('_')); executed (the execution status of this line is deduced): result.append(QLatin1Char('_')); | - |
1062 | result.append(d->countryCode()); executed (the execution status of this line is deduced): result.append(d->countryCode()); | - |
1063 | | - |
1064 | return result; executed: return result; Execution Count:2514 | 2514 |
1065 | } | - |
1066 | | - |
1067 | /*! | - |
1068 | \since 4.8 | - |
1069 | | - |
1070 | Returns the dash-separated language, script and country (and possibly other BCP47 fields) | - |
1071 | of this locale as a string. | - |
1072 | | - |
1073 | Unlike the uiLanguages() the returned value of the bcp47Name() represents | - |
1074 | the locale name of the QLocale data but not the language the user-interface | - |
1075 | should be in. | - |
1076 | | - |
1077 | This function tries to conform the locale name to BCP47. | - |
1078 | | - |
1079 | \sa language(), country(), script(), uiLanguages() | - |
1080 | */ | - |
1081 | QString QLocale::bcp47Name() const | - |
1082 | { | - |
1083 | return d->bcp47Name(); executed: return d->bcp47Name(); Execution Count:922098 | 922098 |
1084 | } | - |
1085 | | - |
1086 | /*! | - |
1087 | Returns a QString containing the name of \a language. | - |
1088 | | - |
1089 | \sa countryToString(), scriptToString(), bcp47Name() | - |
1090 | */ | - |
1091 | | - |
1092 | QString QLocale::languageToString(Language language) | - |
1093 | { | - |
1094 | if (uint(language) > uint(QLocale::LastLanguage)) partially evaluated: uint(language) > uint(QLocale::LastLanguage) no Evaluation Count:0 | yes Evaluation Count:494 |
| 0-494 |
1095 | return QLatin1String("Unknown"); never executed: return QLatin1String("Unknown"); | 0 |
1096 | return QLatin1String(language_name_list + language_name_index[language]); executed: return QLatin1String(language_name_list + language_name_index[language]); Execution Count:494 | 494 |
1097 | } | - |
1098 | | - |
1099 | /*! | - |
1100 | Returns a QString containing the name of \a country. | - |
1101 | | - |
1102 | \sa languageToString(), scriptToString(), country(), bcp47Name() | - |
1103 | */ | - |
1104 | | - |
1105 | QString QLocale::countryToString(Country country) | - |
1106 | { | - |
1107 | if (uint(country) > uint(QLocale::LastCountry)) partially evaluated: uint(country) > uint(QLocale::LastCountry) no Evaluation Count:0 | yes Evaluation Count:494 |
| 0-494 |
1108 | return QLatin1String("Unknown"); never executed: return QLatin1String("Unknown"); | 0 |
1109 | return QLatin1String(country_name_list + country_name_index[country]); executed: return QLatin1String(country_name_list + country_name_index[country]); Execution Count:494 | 494 |
1110 | } | - |
1111 | | - |
1112 | /*! | - |
1113 | \since 4.8 | - |
1114 | | - |
1115 | Returns a QString containing the name of \a script. | - |
1116 | | - |
1117 | \sa languageToString(), countryToString(), script(), bcp47Name() | - |
1118 | */ | - |
1119 | QString QLocale::scriptToString(QLocale::Script script) | - |
1120 | { | - |
1121 | if (uint(script) > uint(QLocale::LastScript)) partially evaluated: uint(script) > uint(QLocale::LastScript) no Evaluation Count:0 | yes Evaluation Count:11 |
| 0-11 |
1122 | return QLatin1String("Unknown"); never executed: return QLatin1String("Unknown"); | 0 |
1123 | return QLatin1String(script_name_list + script_name_index[script]); executed: return QLatin1String(script_name_list + script_name_index[script]); Execution Count:11 | 11 |
1124 | } | - |
1125 | | - |
1126 | /*! | - |
1127 | Returns the short int represented by the localized string \a s. | - |
1128 | | - |
1129 | If the conversion fails the function returns 0. | - |
1130 | | - |
1131 | If \a ok is not 0, failure is reported by setting *ok to false, and | - |
1132 | success by setting *ok to true. | - |
1133 | | - |
1134 | This function ignores leading and trailing whitespace. | - |
1135 | | - |
1136 | \sa toUShort(), toString() | - |
1137 | */ | - |
1138 | | - |
1139 | short QLocale::toShort(const QString &s, bool *ok) const | - |
1140 | { | - |
1141 | qlonglong i = toLongLong(s, ok); never executed (the execution status of this line is deduced): qlonglong i = toLongLong(s, ok); | - |
1142 | if (i < SHRT_MIN || i > SHRT_MAX) { never evaluated: i < (-32767 - 1) never evaluated: i > 32767 | 0 |
1143 | if (ok != 0) | 0 |
1144 | *ok = false; never executed: *ok = false; | 0 |
1145 | return 0; never executed: return 0; | 0 |
1146 | } | - |
1147 | return short(i); never executed: return short(i); | 0 |
1148 | } | - |
1149 | | - |
1150 | /*! | - |
1151 | Returns the unsigned short int represented by the localized string \a s. | - |
1152 | | - |
1153 | If the conversion fails the function returns 0. | - |
1154 | | - |
1155 | If \a ok is not 0, failure is reported by setting *ok to false, and | - |
1156 | success by setting *ok to true. | - |
1157 | | - |
1158 | This function ignores leading and trailing whitespace. | - |
1159 | | - |
1160 | \sa toShort(), toString() | - |
1161 | */ | - |
1162 | | - |
1163 | ushort QLocale::toUShort(const QString &s, bool *ok) const | - |
1164 | { | - |
1165 | qulonglong i = toULongLong(s, ok); never executed (the execution status of this line is deduced): qulonglong i = toULongLong(s, ok); | - |
1166 | if (i > USHRT_MAX) { never evaluated: i > (32767 * 2 + 1) | 0 |
1167 | if (ok != 0) | 0 |
1168 | *ok = false; never executed: *ok = false; | 0 |
1169 | return 0; never executed: return 0; | 0 |
1170 | } | - |
1171 | return ushort(i); never executed: return ushort(i); | 0 |
1172 | } | - |
1173 | | - |
1174 | /*! | - |
1175 | Returns the int represented by the localized string \a s. | - |
1176 | | - |
1177 | If the conversion fails the function returns 0. | - |
1178 | | - |
1179 | If \a ok is not 0, failure is reported by setting *ok to false, and | - |
1180 | success by setting *ok to true. | - |
1181 | | - |
1182 | This function ignores leading and trailing whitespace. | - |
1183 | | - |
1184 | \sa toUInt(), toString() | - |
1185 | */ | - |
1186 | | - |
1187 | int QLocale::toInt(const QString &s, bool *ok) const | - |
1188 | { | - |
1189 | qlonglong i = toLongLong(s, ok); executed (the execution status of this line is deduced): qlonglong i = toLongLong(s, ok); | - |
1190 | if (i < INT_MIN || i > INT_MAX) { partially evaluated: i < (-2147483647 - 1) no Evaluation Count:0 | yes Evaluation Count:1110 |
partially evaluated: i > 2147483647 no Evaluation Count:0 | yes Evaluation Count:1110 |
| 0-1110 |
1191 | if (ok != 0) | 0 |
1192 | *ok = false; never executed: *ok = false; | 0 |
1193 | return 0; never executed: return 0; | 0 |
1194 | } | - |
1195 | return int(i); executed: return int(i); Execution Count:1110 | 1110 |
1196 | } | - |
1197 | | - |
1198 | /*! | - |
1199 | Returns the unsigned int represented by the localized string \a s. | - |
1200 | | - |
1201 | If the conversion fails the function returns 0. | - |
1202 | | - |
1203 | If \a ok is not 0, failure is reported by setting *ok to false, and | - |
1204 | success by setting *ok to true. | - |
1205 | | - |
1206 | This function ignores leading and trailing whitespace. | - |
1207 | | - |
1208 | \sa toInt(), toString() | - |
1209 | */ | - |
1210 | | - |
1211 | uint QLocale::toUInt(const QString &s, bool *ok) const | - |
1212 | { | - |
1213 | qulonglong i = toULongLong(s, ok); executed (the execution status of this line is deduced): qulonglong i = toULongLong(s, ok); | - |
1214 | if (i > UINT_MAX) { partially evaluated: i > (2147483647 * 2U + 1U) no Evaluation Count:0 | yes Evaluation Count:11632 |
| 0-11632 |
1215 | if (ok != 0) | 0 |
1216 | *ok = false; never executed: *ok = false; | 0 |
1217 | return 0; never executed: return 0; | 0 |
1218 | } | - |
1219 | return uint(i); executed: return uint(i); Execution Count:11632 | 11632 |
1220 | } | - |
1221 | | - |
1222 | /*! | - |
1223 | Returns the long long int represented by the localized string \a s. | - |
1224 | | - |
1225 | If the conversion fails the function returns 0. | - |
1226 | | - |
1227 | If \a ok is not 0, failure is reported by setting *ok to false, and | - |
1228 | success by setting *ok to true. | - |
1229 | | - |
1230 | This function ignores leading and trailing whitespace. | - |
1231 | | - |
1232 | \sa toInt(), toULongLong(), toDouble(), toString() | - |
1233 | */ | - |
1234 | | - |
1235 | | - |
1236 | qlonglong QLocale::toLongLong(const QString &s, bool *ok) const | - |
1237 | { | - |
1238 | QLocalePrivate::GroupSeparatorMode mode executed (the execution status of this line is deduced): QLocalePrivate::GroupSeparatorMode mode | - |
1239 | = d->m_numberOptions & RejectGroupSeparator evaluated: d->m_numberOptions & RejectGroupSeparator yes Evaluation Count:2 | yes Evaluation Count:1149 |
| 2-1149 |
1240 | ? QLocalePrivate::FailOnGroupSeparators executed (the execution status of this line is deduced): ? QLocalePrivate::FailOnGroupSeparators | - |
1241 | : QLocalePrivate::ParseGroupSeparators; executed (the execution status of this line is deduced): : QLocalePrivate::ParseGroupSeparators; | - |
1242 | | - |
1243 | return d->stringToLongLong(s, 10, ok, mode); executed: return d->stringToLongLong(s, 10, ok, mode); Execution Count:1151 | 1151 |
1244 | } | - |
1245 | | - |
1246 | /*! | - |
1247 | Returns the unsigned long long int represented by the localized | - |
1248 | string \a s. | - |
1249 | | - |
1250 | If the conversion fails the function returns 0. | - |
1251 | | - |
1252 | If \a ok is not 0, failure is reported by setting *ok to false, and | - |
1253 | success by setting *ok to true. | - |
1254 | | - |
1255 | This function ignores leading and trailing whitespace. | - |
1256 | | - |
1257 | \sa toLongLong(), toInt(), toDouble(), toString() | - |
1258 | */ | - |
1259 | | - |
1260 | qulonglong QLocale::toULongLong(const QString &s, bool *ok) const | - |
1261 | { | - |
1262 | QLocalePrivate::GroupSeparatorMode mode executed (the execution status of this line is deduced): QLocalePrivate::GroupSeparatorMode mode | - |
1263 | = d->m_numberOptions & RejectGroupSeparator partially evaluated: d->m_numberOptions & RejectGroupSeparator no Evaluation Count:0 | yes Evaluation Count:11632 |
| 0-11632 |
1264 | ? QLocalePrivate::FailOnGroupSeparators executed (the execution status of this line is deduced): ? QLocalePrivate::FailOnGroupSeparators | - |
1265 | : QLocalePrivate::ParseGroupSeparators; executed (the execution status of this line is deduced): : QLocalePrivate::ParseGroupSeparators; | - |
1266 | | - |
1267 | return d->stringToUnsLongLong(s, 10, ok, mode); executed: return d->stringToUnsLongLong(s, 10, ok, mode); Execution Count:11632 | 11632 |
1268 | } | - |
1269 | | - |
1270 | /*! | - |
1271 | Returns the float represented by the localized string \a s, or 0.0 | - |
1272 | if the conversion failed. | - |
1273 | | - |
1274 | If \a ok is not 0, reports failure by setting | - |
1275 | *ok to false and success by setting *ok to true. | - |
1276 | | - |
1277 | This function ignores leading and trailing whitespace. | - |
1278 | | - |
1279 | \sa toDouble(), toInt(), toString() | - |
1280 | */ | - |
1281 | | - |
1282 | #define QT_MAX_FLOAT 3.4028234663852886e+38 | - |
1283 | | - |
1284 | float QLocale::toFloat(const QString &s, bool *ok) const | - |
1285 | { | - |
1286 | bool myOk; never executed (the execution status of this line is deduced): bool myOk; | - |
1287 | double d = toDouble(s, &myOk); never executed (the execution status of this line is deduced): double d = toDouble(s, &myOk); | - |
1288 | if (!myOk || d > QT_MAX_FLOAT || d < -QT_MAX_FLOAT) { never evaluated: !myOk never evaluated: d > 3.4028234663852886e+38 never evaluated: d < -3.4028234663852886e+38 | 0 |
1289 | if (ok != 0) | 0 |
1290 | *ok = false; never executed: *ok = false; | 0 |
1291 | return 0.0; never executed: return 0.0; | 0 |
1292 | } | - |
1293 | if (ok != 0) | 0 |
1294 | *ok = true; never executed: *ok = true; | 0 |
1295 | return float(d); never executed: return float(d); | 0 |
1296 | } | - |
1297 | | - |
1298 | /*! | - |
1299 | Returns the double represented by the localized string \a s, or | - |
1300 | 0.0 if the conversion failed. | - |
1301 | | - |
1302 | If \a ok is not 0, reports failure by setting | - |
1303 | *ok to false and success by setting *ok to true. | - |
1304 | | - |
1305 | Unlike QString::toDouble(), this function does not fall back to | - |
1306 | the "C" locale if the string cannot be interpreted in this | - |
1307 | locale. | - |
1308 | | - |
1309 | \snippet code/src_corelib_tools_qlocale.cpp 3 | - |
1310 | | - |
1311 | Notice that the last conversion returns 1234.0, because '.' is the | - |
1312 | thousands group separator in the German locale. | - |
1313 | | - |
1314 | This function ignores leading and trailing whitespace. | - |
1315 | | - |
1316 | \sa toFloat(), toInt(), toString() | - |
1317 | */ | - |
1318 | | - |
1319 | double QLocale::toDouble(const QString &s, bool *ok) const | - |
1320 | { | - |
1321 | QLocalePrivate::GroupSeparatorMode mode executed (the execution status of this line is deduced): QLocalePrivate::GroupSeparatorMode mode | - |
1322 | = d->m_numberOptions & RejectGroupSeparator partially evaluated: d->m_numberOptions & RejectGroupSeparator no Evaluation Count:0 | yes Evaluation Count:1274 |
| 0-1274 |
1323 | ? QLocalePrivate::FailOnGroupSeparators executed (the execution status of this line is deduced): ? QLocalePrivate::FailOnGroupSeparators | - |
1324 | : QLocalePrivate::ParseGroupSeparators; executed (the execution status of this line is deduced): : QLocalePrivate::ParseGroupSeparators; | - |
1325 | | - |
1326 | return d->stringToDouble(s, ok, mode); executed: return d->stringToDouble(s, ok, mode); Execution Count:1274 | 1274 |
1327 | } | - |
1328 | | - |
1329 | /*! | - |
1330 | Returns a localized string representation of \a i. | - |
1331 | | - |
1332 | \sa toLongLong() | - |
1333 | */ | - |
1334 | | - |
1335 | QString QLocale::toString(qlonglong i) const | - |
1336 | { | - |
1337 | int flags = d->m_numberOptions & OmitGroupSeparator evaluated: d->m_numberOptions & OmitGroupSeparator yes Evaluation Count:6447 | yes Evaluation Count:1671 |
| 1671-6447 |
1338 | ? 0 executed (the execution status of this line is deduced): ? 0 | - |
1339 | : QLocalePrivate::ThousandsGroup; executed (the execution status of this line is deduced): : QLocalePrivate::ThousandsGroup; | - |
1340 | | - |
1341 | return d->longLongToString(i, -1, 10, -1, flags); executed: return d->longLongToString(i, -1, 10, -1, flags); Execution Count:8118 | 8118 |
1342 | } | - |
1343 | | - |
1344 | /*! | - |
1345 | \overload | - |
1346 | | - |
1347 | \sa toULongLong() | - |
1348 | */ | - |
1349 | | - |
1350 | QString QLocale::toString(qulonglong i) const | - |
1351 | { | - |
1352 | int flags = d->m_numberOptions & OmitGroupSeparator evaluated: d->m_numberOptions & OmitGroupSeparator yes Evaluation Count:12 | yes Evaluation Count:452 |
| 12-452 |
1353 | ? 0 executed (the execution status of this line is deduced): ? 0 | - |
1354 | : QLocalePrivate::ThousandsGroup; executed (the execution status of this line is deduced): : QLocalePrivate::ThousandsGroup; | - |
1355 | | - |
1356 | return d->unsLongLongToString(i, -1, 10, -1, flags); executed: return d->unsLongLongToString(i, -1, 10, -1, flags); Execution Count:464 | 464 |
1357 | } | - |
1358 | | - |
1359 | /*! | - |
1360 | Returns a localized string representation of the given \a date in the | - |
1361 | specified \a format. | - |
1362 | If \a format is an empty string, an empty string is returned. | - |
1363 | */ | - |
1364 | | - |
1365 | QString QLocale::toString(const QDate &date, const QString &format) const | - |
1366 | { | - |
1367 | return d->dateTimeToString(format, &date, 0, this); executed: return d->dateTimeToString(format, &date, 0, this); Execution Count:1744 | 1744 |
1368 | } | - |
1369 | | - |
1370 | /*! | - |
1371 | Returns a localized string representation of the given \a date according | - |
1372 | to the specified \a format. | - |
1373 | */ | - |
1374 | | - |
1375 | QString QLocale::toString(const QDate &date, FormatType format) const | - |
1376 | { | - |
1377 | if (!date.isValid()) partially evaluated: !date.isValid() no Evaluation Count:0 | yes Evaluation Count:3391 |
| 0-3391 |
1378 | return QString(); never executed: return QString(); | 0 |
1379 | | - |
1380 | #ifndef QT_NO_SYSTEMLOCALE | - |
1381 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:1683 | yes Evaluation Count:1708 |
| 1683-1708 |
1382 | QVariant res = systemLocale()->query(format == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(format == LongFormat | - |
1383 | ? QSystemLocale::DateToStringLong : QSystemLocale::DateToStringShort, executed (the execution status of this line is deduced): ? QSystemLocale::DateToStringLong : QSystemLocale::DateToStringShort, | - |
1384 | date); executed (the execution status of this line is deduced): date); | - |
1385 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:1683 | no Evaluation Count:0 |
| 0-1683 |
1386 | return res.toString(); executed: return res.toString(); Execution Count:1683 | 1683 |
1387 | } | 0 |
1388 | #endif | - |
1389 | | - |
1390 | QString format_str = dateFormat(format); executed (the execution status of this line is deduced): QString format_str = dateFormat(format); | - |
1391 | return toString(date, format_str); executed: return toString(date, format_str); Execution Count:1708 | 1708 |
1392 | } | - |
1393 | | - |
1394 | static bool timeFormatContainsAP(const QString &format) | - |
1395 | { | - |
1396 | int i = 0; executed (the execution status of this line is deduced): int i = 0; | - |
1397 | while (i < format.size()) { evaluated: i < format.size() yes Evaluation Count:64412 | yes Evaluation Count:3331 |
| 3331-64412 |
1398 | if (format.at(i).unicode() == '\'') { evaluated: format.at(i).unicode() == '\'' yes Evaluation Count:765 | yes Evaluation Count:63647 |
| 765-63647 |
1399 | qt_readEscapedFormatString(format, &i); executed (the execution status of this line is deduced): qt_readEscapedFormatString(format, &i); | - |
1400 | continue; executed: continue; Execution Count:765 | 765 |
1401 | } | - |
1402 | | - |
1403 | if (format.at(i).toLower().unicode() == 'a') evaluated: format.at(i).toLower().unicode() == 'a' yes Evaluation Count:2487 | yes Evaluation Count:61160 |
| 2487-61160 |
1404 | return true; executed: return true; Execution Count:2487 | 2487 |
1405 | | - |
1406 | ++i; executed (the execution status of this line is deduced): ++i; | - |
1407 | } executed: } Execution Count:61160 | 61160 |
1408 | return false; executed: return false; Execution Count:3331 | 3331 |
1409 | } | - |
1410 | | - |
1411 | static QString timeZone() | - |
1412 | { | - |
1413 | #if defined(Q_OS_WINCE) | - |
1414 | TIME_ZONE_INFORMATION info; | - |
1415 | DWORD res = GetTimeZoneInformation(&info); | - |
1416 | if (res == TIME_ZONE_ID_UNKNOWN) | - |
1417 | return QString(); | - |
1418 | return QString::fromWCharArray(info.StandardName); | - |
1419 | #elif defined(Q_OS_WIN) | - |
1420 | _tzset(); | - |
1421 | # if defined(_MSC_VER) && _MSC_VER >= 1400 | - |
1422 | size_t returnSize = 0; | - |
1423 | char timeZoneName[512]; | - |
1424 | if (_get_tzname(&returnSize, timeZoneName, 512, 1)) | - |
1425 | return QString(); | - |
1426 | return QString::fromLocal8Bit(timeZoneName); | - |
1427 | # else | - |
1428 | return QString::fromLocal8Bit(_tzname[1]); | - |
1429 | # endif | - |
1430 | #elif defined(Q_OS_VXWORKS) | - |
1431 | return QString(); | - |
1432 | #else | - |
1433 | tzset(); executed (the execution status of this line is deduced): tzset(); | - |
1434 | return QString::fromLocal8Bit(tzname[1]); executed: return QString::fromLocal8Bit(tzname[1]); Execution Count:2 | 2 |
1435 | #endif | - |
1436 | } | - |
1437 | | - |
1438 | /*! | - |
1439 | Returns a localized string representation of the given \a time according | - |
1440 | to the specified \a format. | - |
1441 | If \a format is an empty string, an empty string is returned. | - |
1442 | */ | - |
1443 | QString QLocale::toString(const QTime &time, const QString &format) const | - |
1444 | { | - |
1445 | return d->dateTimeToString(format, 0, &time, this); executed: return d->dateTimeToString(format, 0, &time, this); Execution Count:1700 | 1700 |
1446 | } | - |
1447 | | - |
1448 | /*! | - |
1449 | \since 4.4 | - |
1450 | | - |
1451 | Returns a localized string representation of the given \a dateTime according | - |
1452 | to the specified \a format. | - |
1453 | If \a format is an empty string, an empty string is returned. | - |
1454 | */ | - |
1455 | | - |
1456 | QString QLocale::toString(const QDateTime &dateTime, const QString &format) const | - |
1457 | { | - |
1458 | const QDate dt = dateTime.date(); executed (the execution status of this line is deduced): const QDate dt = dateTime.date(); | - |
1459 | const QTime tm = dateTime.time(); executed (the execution status of this line is deduced): const QTime tm = dateTime.time(); | - |
1460 | return d->dateTimeToString(format, &dt, &tm, this); executed: return d->dateTimeToString(format, &dt, &tm, this); Execution Count:4121 | 4121 |
1461 | } | - |
1462 | | - |
1463 | /*! | - |
1464 | \since 4.4 | - |
1465 | | - |
1466 | Returns a localized string representation of the given \a dateTime according | - |
1467 | to the specified \a format. | - |
1468 | */ | - |
1469 | | - |
1470 | QString QLocale::toString(const QDateTime &dateTime, FormatType format) const | - |
1471 | { | - |
1472 | if (!dateTime.isValid()) never evaluated: !dateTime.isValid() | 0 |
1473 | return QString(); never executed: return QString(); | 0 |
1474 | | - |
1475 | #ifndef QT_NO_SYSTEMLOCALE | - |
1476 | if (d->m_data == systemData()) { never evaluated: d->m_data == systemData() | 0 |
1477 | QVariant res = systemLocale()->query(format == LongFormat never executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(format == LongFormat | - |
1478 | ? QSystemLocale::DateTimeToStringLong never executed (the execution status of this line is deduced): ? QSystemLocale::DateTimeToStringLong | - |
1479 | : QSystemLocale::DateTimeToStringShort, never executed (the execution status of this line is deduced): : QSystemLocale::DateTimeToStringShort, | - |
1480 | dateTime); never executed (the execution status of this line is deduced): dateTime); | - |
1481 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
1482 | return res.toString(); never executed: return res.toString(); | 0 |
1483 | } | 0 |
1484 | #endif | - |
1485 | | - |
1486 | const QString format_str = dateTimeFormat(format); never executed (the execution status of this line is deduced): const QString format_str = dateTimeFormat(format); | - |
1487 | return toString(dateTime, format_str); never executed: return toString(dateTime, format_str); | 0 |
1488 | } | - |
1489 | | - |
1490 | | - |
1491 | /*! | - |
1492 | Returns a localized string representation of the given \a time in the | - |
1493 | specified \a format. | - |
1494 | */ | - |
1495 | | - |
1496 | QString QLocale::toString(const QTime &time, FormatType format) const | - |
1497 | { | - |
1498 | if (!time.isValid()) partially evaluated: !time.isValid() no Evaluation Count:0 | yes Evaluation Count:3333 |
| 0-3333 |
1499 | return QString(); never executed: return QString(); | 0 |
1500 | | - |
1501 | #ifndef QT_NO_SYSTEMLOCALE | - |
1502 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:1664 | yes Evaluation Count:1669 |
| 1664-1669 |
1503 | QVariant res = systemLocale()->query(format == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(format == LongFormat | - |
1504 | ? QSystemLocale::TimeToStringLong : QSystemLocale::TimeToStringShort, executed (the execution status of this line is deduced): ? QSystemLocale::TimeToStringLong : QSystemLocale::TimeToStringShort, | - |
1505 | time); executed (the execution status of this line is deduced): time); | - |
1506 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:1664 | no Evaluation Count:0 |
| 0-1664 |
1507 | return res.toString(); executed: return res.toString(); Execution Count:1664 | 1664 |
1508 | } | 0 |
1509 | #endif | - |
1510 | | - |
1511 | QString format_str = timeFormat(format); executed (the execution status of this line is deduced): QString format_str = timeFormat(format); | - |
1512 | return toString(time, format_str); executed: return toString(time, format_str); Execution Count:1669 | 1669 |
1513 | } | - |
1514 | | - |
1515 | /*! | - |
1516 | \since 4.1 | - |
1517 | | - |
1518 | Returns the date format used for the current locale. | - |
1519 | | - |
1520 | If \a format is LongFormat the format will be a long version. | - |
1521 | Otherwise it uses a shorter version. | - |
1522 | | - |
1523 | \sa QDate::toString(), QDate::fromString() | - |
1524 | */ | - |
1525 | | - |
1526 | QString QLocale::dateFormat(FormatType format) const | - |
1527 | { | - |
1528 | #ifndef QT_NO_SYSTEMLOCALE | - |
1529 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:10 | yes Evaluation Count:1871 |
| 10-1871 |
1530 | QVariant res = systemLocale()->query(format == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(format == LongFormat | - |
1531 | ? QSystemLocale::DateFormatLong : QSystemLocale::DateFormatShort, executed (the execution status of this line is deduced): ? QSystemLocale::DateFormatLong : QSystemLocale::DateFormatShort, | - |
1532 | QVariant()); executed (the execution status of this line is deduced): QVariant()); | - |
1533 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:10 | no Evaluation Count:0 |
| 0-10 |
1534 | return res.toString(); executed: return res.toString(); Execution Count:10 | 10 |
1535 | } | 0 |
1536 | #endif | - |
1537 | | - |
1538 | quint32 idx, size; executed (the execution status of this line is deduced): quint32 idx, size; | - |
1539 | switch (format) { | - |
1540 | case LongFormat: | - |
1541 | idx = d->m_data->m_long_date_format_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_long_date_format_idx; | - |
1542 | size = d->m_data->m_long_date_format_size; executed (the execution status of this line is deduced): size = d->m_data->m_long_date_format_size; | - |
1543 | break; executed: break; Execution Count:27 | 27 |
1544 | default: | - |
1545 | idx = d->m_data->m_short_date_format_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_short_date_format_idx; | - |
1546 | size = d->m_data->m_short_date_format_size; executed (the execution status of this line is deduced): size = d->m_data->m_short_date_format_size; | - |
1547 | break; executed: break; Execution Count:1844 | 1844 |
1548 | } | - |
1549 | return getLocaleData(date_format_data + idx, size); executed: return getLocaleData(date_format_data + idx, size); Execution Count:1871 | 1871 |
1550 | } | - |
1551 | | - |
1552 | /*! | - |
1553 | \since 4.1 | - |
1554 | | - |
1555 | Returns the time format used for the current locale. | - |
1556 | | - |
1557 | If \a format is LongFormat the format will be a long version. | - |
1558 | Otherwise it uses a shorter version. | - |
1559 | | - |
1560 | \sa QTime::toString(), QTime::fromString() | - |
1561 | */ | - |
1562 | | - |
1563 | QString QLocale::timeFormat(FormatType format) const | - |
1564 | { | - |
1565 | #ifndef QT_NO_SYSTEMLOCALE | - |
1566 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:10 | yes Evaluation Count:1833 |
| 10-1833 |
1567 | QVariant res = systemLocale()->query(format == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(format == LongFormat | - |
1568 | ? QSystemLocale::TimeFormatLong : QSystemLocale::TimeFormatShort, executed (the execution status of this line is deduced): ? QSystemLocale::TimeFormatLong : QSystemLocale::TimeFormatShort, | - |
1569 | QVariant()); executed (the execution status of this line is deduced): QVariant()); | - |
1570 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:10 | no Evaluation Count:0 |
| 0-10 |
1571 | return res.toString(); executed: return res.toString(); Execution Count:10 | 10 |
1572 | } | 0 |
1573 | #endif | - |
1574 | | - |
1575 | quint32 idx, size; executed (the execution status of this line is deduced): quint32 idx, size; | - |
1576 | switch (format) { | - |
1577 | case LongFormat: | - |
1578 | idx = d->m_data->m_long_time_format_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_long_time_format_idx; | - |
1579 | size = d->m_data->m_long_time_format_size; executed (the execution status of this line is deduced): size = d->m_data->m_long_time_format_size; | - |
1580 | break; executed: break; Execution Count:28 | 28 |
1581 | default: | - |
1582 | idx = d->m_data->m_short_time_format_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_short_time_format_idx; | - |
1583 | size = d->m_data->m_short_time_format_size; executed (the execution status of this line is deduced): size = d->m_data->m_short_time_format_size; | - |
1584 | break; executed: break; Execution Count:1805 | 1805 |
1585 | } | - |
1586 | return getLocaleData(time_format_data + idx, size); executed: return getLocaleData(time_format_data + idx, size); Execution Count:1833 | 1833 |
1587 | } | - |
1588 | | - |
1589 | /*! | - |
1590 | \since 4.4 | - |
1591 | | - |
1592 | Returns the date time format used for the current locale. | - |
1593 | | - |
1594 | If \a format is ShortFormat the format will be a short version. | - |
1595 | Otherwise it uses a longer version. | - |
1596 | | - |
1597 | \sa QDateTime::toString(), QDateTime::fromString() | - |
1598 | */ | - |
1599 | | - |
1600 | QString QLocale::dateTimeFormat(FormatType format) const | - |
1601 | { | - |
1602 | #ifndef QT_NO_SYSTEMLOCALE | - |
1603 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:13 | yes Evaluation Count:93 |
| 13-93 |
1604 | QVariant res = systemLocale()->query(format == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(format == LongFormat | - |
1605 | ? QSystemLocale::DateTimeFormatLong executed (the execution status of this line is deduced): ? QSystemLocale::DateTimeFormatLong | - |
1606 | : QSystemLocale::DateTimeFormatShort, executed (the execution status of this line is deduced): : QSystemLocale::DateTimeFormatShort, | - |
1607 | QVariant()); executed (the execution status of this line is deduced): QVariant()); | - |
1608 | if (!res.isNull()) { partially evaluated: !res.isNull() yes Evaluation Count:13 | no Evaluation Count:0 |
| 0-13 |
1609 | return res.toString(); executed: return res.toString(); Execution Count:13 | 13 |
1610 | } | - |
1611 | } | 0 |
1612 | #endif | - |
1613 | return dateFormat(format) + QLatin1Char(' ') + timeFormat(format); executed: return dateFormat(format) + QLatin1Char(' ') + timeFormat(format); Execution Count:93 | 93 |
1614 | } | - |
1615 | | - |
1616 | /*! | - |
1617 | \since 4.4 | - |
1618 | | - |
1619 | Parses the time string given in \a string and returns the | - |
1620 | time. The format of the time string is chosen according to the | - |
1621 | \a format parameter (see timeFormat()). | - |
1622 | | - |
1623 | If the time could not be parsed, returns an invalid time. | - |
1624 | | - |
1625 | \sa timeFormat(), toDate(), toDateTime(), QTime::fromString() | - |
1626 | */ | - |
1627 | #ifndef QT_NO_DATESTRING | - |
1628 | QTime QLocale::toTime(const QString &string, FormatType format) const | - |
1629 | { | - |
1630 | return toTime(string, timeFormat(format)); never executed: return toTime(string, timeFormat(format)); | 0 |
1631 | } | - |
1632 | #endif | - |
1633 | | - |
1634 | /*! | - |
1635 | \since 4.4 | - |
1636 | | - |
1637 | Parses the date string given in \a string and returns the | - |
1638 | date. The format of the date string is chosen according to the | - |
1639 | \a format parameter (see dateFormat()). | - |
1640 | | - |
1641 | If the date could not be parsed, returns an invalid date. | - |
1642 | | - |
1643 | \sa dateFormat(), toTime(), toDateTime(), QDate::fromString() | - |
1644 | */ | - |
1645 | #ifndef QT_NO_DATESTRING | - |
1646 | QDate QLocale::toDate(const QString &string, FormatType format) const | - |
1647 | { | - |
1648 | return toDate(string, dateFormat(format)); never executed: return toDate(string, dateFormat(format)); | 0 |
1649 | } | - |
1650 | #endif | - |
1651 | | - |
1652 | /*! | - |
1653 | \since 4.4 | - |
1654 | | - |
1655 | Parses the date/time string given in \a string and returns the | - |
1656 | time. The format of the date/time string is chosen according to the | - |
1657 | \a format parameter (see dateTimeFormat()). | - |
1658 | | - |
1659 | If the string could not be parsed, returns an invalid QDateTime. | - |
1660 | | - |
1661 | \sa dateTimeFormat(), toTime(), toDate(), QDateTime::fromString() | - |
1662 | */ | - |
1663 | | - |
1664 | #ifndef QT_NO_DATESTRING | - |
1665 | QDateTime QLocale::toDateTime(const QString &string, FormatType format) const | - |
1666 | { | - |
1667 | return toDateTime(string, dateTimeFormat(format)); never executed: return toDateTime(string, dateTimeFormat(format)); | 0 |
1668 | } | - |
1669 | #endif | - |
1670 | | - |
1671 | /*! | - |
1672 | \since 4.4 | - |
1673 | | - |
1674 | Parses the time string given in \a string and returns the | - |
1675 | time. See QTime::fromString() for information on what is a valid | - |
1676 | format string. | - |
1677 | | - |
1678 | If the time could not be parsed, returns an invalid time. | - |
1679 | | - |
1680 | \sa timeFormat(), toDate(), toDateTime(), QTime::fromString() | - |
1681 | */ | - |
1682 | #ifndef QT_NO_DATESTRING | - |
1683 | QTime QLocale::toTime(const QString &string, const QString &format) const | - |
1684 | { | - |
1685 | QTime time; never executed (the execution status of this line is deduced): QTime time; | - |
1686 | #ifndef QT_BOOTSTRAPPED | - |
1687 | QDateTimeParser dt(QVariant::Time, QDateTimeParser::FromString); never executed (the execution status of this line is deduced): QDateTimeParser dt(QVariant::Time, QDateTimeParser::FromString); | - |
1688 | dt.defaultLocale = *this; never executed (the execution status of this line is deduced): dt.defaultLocale = *this; | - |
1689 | if (dt.parseFormat(format)) never evaluated: dt.parseFormat(format) | 0 |
1690 | dt.fromString(string, 0, &time); never executed: dt.fromString(string, 0, &time); | 0 |
1691 | #else | - |
1692 | Q_UNUSED(string); | - |
1693 | Q_UNUSED(format); | - |
1694 | #endif | - |
1695 | return time; never executed: return time; | 0 |
1696 | } | - |
1697 | #endif | - |
1698 | | - |
1699 | /*! | - |
1700 | \since 4.4 | - |
1701 | | - |
1702 | Parses the date string given in \a string and returns the | - |
1703 | date. See QDate::fromString() for information on the expressions | - |
1704 | that can be used with this function. | - |
1705 | | - |
1706 | This function searches month names and the names of the days of | - |
1707 | the week in the current locale. | - |
1708 | | - |
1709 | If the date could not be parsed, returns an invalid date. | - |
1710 | | - |
1711 | \sa dateFormat(), toTime(), toDateTime(), QDate::fromString() | - |
1712 | */ | - |
1713 | #ifndef QT_NO_DATESTRING | - |
1714 | QDate QLocale::toDate(const QString &string, const QString &format) const | - |
1715 | { | - |
1716 | QDate date; never executed (the execution status of this line is deduced): QDate date; | - |
1717 | #ifndef QT_BOOTSTRAPPED | - |
1718 | QDateTimeParser dt(QVariant::Date, QDateTimeParser::FromString); never executed (the execution status of this line is deduced): QDateTimeParser dt(QVariant::Date, QDateTimeParser::FromString); | - |
1719 | dt.defaultLocale = *this; never executed (the execution status of this line is deduced): dt.defaultLocale = *this; | - |
1720 | if (dt.parseFormat(format)) never evaluated: dt.parseFormat(format) | 0 |
1721 | dt.fromString(string, &date, 0); never executed: dt.fromString(string, &date, 0); | 0 |
1722 | #else | - |
1723 | Q_UNUSED(string); | - |
1724 | Q_UNUSED(format); | - |
1725 | #endif | - |
1726 | return date; never executed: return date; | 0 |
1727 | } | - |
1728 | #endif | - |
1729 | | - |
1730 | /*! | - |
1731 | \since 4.4 | - |
1732 | | - |
1733 | Parses the date/time string given in \a string and returns the | - |
1734 | time. See QDateTime::fromString() for information on the expressions | - |
1735 | that can be used with this function. | - |
1736 | | - |
1737 | \note The month and day names used must be given in the user's local | - |
1738 | language. | - |
1739 | | - |
1740 | If the string could not be parsed, returns an invalid QDateTime. | - |
1741 | | - |
1742 | \sa dateTimeFormat(), toTime(), toDate(), QDateTime::fromString() | - |
1743 | */ | - |
1744 | #ifndef QT_NO_DATESTRING | - |
1745 | QDateTime QLocale::toDateTime(const QString &string, const QString &format) const | - |
1746 | { | - |
1747 | #ifndef QT_BOOTSTRAPPED | - |
1748 | QTime time; executed (the execution status of this line is deduced): QTime time; | - |
1749 | QDate date; executed (the execution status of this line is deduced): QDate date; | - |
1750 | | - |
1751 | QDateTimeParser dt(QVariant::DateTime, QDateTimeParser::FromString); executed (the execution status of this line is deduced): QDateTimeParser dt(QVariant::DateTime, QDateTimeParser::FromString); | - |
1752 | dt.defaultLocale = *this; executed (the execution status of this line is deduced): dt.defaultLocale = *this; | - |
1753 | if (dt.parseFormat(format) && dt.fromString(string, &date, &time)) partially evaluated: dt.parseFormat(format) yes Evaluation Count:21 | no Evaluation Count:0 |
partially evaluated: dt.fromString(string, &date, &time) yes Evaluation Count:21 | no Evaluation Count:0 |
| 0-21 |
1754 | return QDateTime(date, time); executed: return QDateTime(date, time); Execution Count:21 | 21 |
1755 | #else | - |
1756 | Q_UNUSED(string); | - |
1757 | Q_UNUSED(format); | - |
1758 | #endif | - |
1759 | return QDateTime(QDate(), QTime(-1, -1, -1)); never executed: return QDateTime(QDate(), QTime(-1, -1, -1)); | 0 |
1760 | } | - |
1761 | #endif | - |
1762 | | - |
1763 | | - |
1764 | /*! | - |
1765 | \since 4.1 | - |
1766 | | - |
1767 | Returns the decimal point character of this locale. | - |
1768 | */ | - |
1769 | QChar QLocale::decimalPoint() const | - |
1770 | { | - |
1771 | return d->decimal(); executed: return d->decimal(); Execution Count:2043 | 2043 |
1772 | } | - |
1773 | | - |
1774 | /*! | - |
1775 | \since 4.1 | - |
1776 | | - |
1777 | Returns the group separator character of this locale. | - |
1778 | */ | - |
1779 | QChar QLocale::groupSeparator() const | - |
1780 | { | - |
1781 | return d->group(); executed: return d->group(); Execution Count:5889 | 5889 |
1782 | } | - |
1783 | | - |
1784 | /*! | - |
1785 | \since 4.1 | - |
1786 | | - |
1787 | Returns the percent character of this locale. | - |
1788 | */ | - |
1789 | QChar QLocale::percent() const | - |
1790 | { | - |
1791 | return d->percent(); never executed: return d->percent(); | 0 |
1792 | } | - |
1793 | | - |
1794 | /*! | - |
1795 | \since 4.1 | - |
1796 | | - |
1797 | Returns the zero digit character of this locale. | - |
1798 | */ | - |
1799 | QChar QLocale::zeroDigit() const | - |
1800 | { | - |
1801 | return d->zero(); executed: return d->zero(); Execution Count:45 | 45 |
1802 | } | - |
1803 | | - |
1804 | /*! | - |
1805 | \since 4.1 | - |
1806 | | - |
1807 | Returns the negative sign character of this locale. | - |
1808 | */ | - |
1809 | QChar QLocale::negativeSign() const | - |
1810 | { | - |
1811 | return d->minus(); executed: return d->minus(); Execution Count:57112 | 57112 |
1812 | } | - |
1813 | | - |
1814 | /*! | - |
1815 | \since 4.5 | - |
1816 | | - |
1817 | Returns the positive sign character of this locale. | - |
1818 | */ | - |
1819 | QChar QLocale::positiveSign() const | - |
1820 | { | - |
1821 | return d->plus(); executed: return d->plus(); Execution Count:35726 | 35726 |
1822 | } | - |
1823 | | - |
1824 | /*! | - |
1825 | \since 4.1 | - |
1826 | | - |
1827 | Returns the exponential character of this locale. | - |
1828 | */ | - |
1829 | QChar QLocale::exponential() const | - |
1830 | { | - |
1831 | return d->exponential(); executed: return d->exponential(); Execution Count:81 | 81 |
1832 | } | - |
1833 | | - |
1834 | static bool qIsUpper(char c) | - |
1835 | { | - |
1836 | return c >= 'A' && c <= 'Z'; executed: return c >= 'A' && c <= 'Z'; Execution Count:997 | 997 |
1837 | } | - |
1838 | | - |
1839 | static char qToLower(char c) | - |
1840 | { | - |
1841 | if (c >= 'A' && c <= 'Z') partially evaluated: c >= 'A' yes Evaluation Count:997 | no Evaluation Count:0 |
partially evaluated: c <= 'Z' no Evaluation Count:0 | yes Evaluation Count:997 |
| 0-997 |
1842 | return c - 'A' + 'a'; never executed: return c - 'A' + 'a'; | 0 |
1843 | else | - |
1844 | return c; executed: return c; Execution Count:997 | 997 |
1845 | } | - |
1846 | | - |
1847 | /*! | - |
1848 | \overload | - |
1849 | | - |
1850 | \a f and \a prec have the same meaning as in QString::number(double, char, int). | - |
1851 | | - |
1852 | \sa toDouble() | - |
1853 | */ | - |
1854 | | - |
1855 | QString QLocale::toString(double i, char f, int prec) const | - |
1856 | { | - |
1857 | QLocalePrivate::DoubleForm form = QLocalePrivate::DFDecimal; executed (the execution status of this line is deduced): QLocalePrivate::DoubleForm form = QLocalePrivate::DFDecimal; | - |
1858 | uint flags = 0; executed (the execution status of this line is deduced): uint flags = 0; | - |
1859 | | - |
1860 | if (qIsUpper(f)) partially evaluated: qIsUpper(f) no Evaluation Count:0 | yes Evaluation Count:997 |
| 0-997 |
1861 | flags = QLocalePrivate::CapitalEorX; never executed: flags = QLocalePrivate::CapitalEorX; | 0 |
1862 | f = qToLower(f); executed (the execution status of this line is deduced): f = qToLower(f); | - |
1863 | | - |
1864 | switch (f) { | - |
1865 | case 'f': | - |
1866 | form = QLocalePrivate::DFDecimal; executed (the execution status of this line is deduced): form = QLocalePrivate::DFDecimal; | - |
1867 | break; executed: break; Execution Count:929 | 929 |
1868 | case 'e': | - |
1869 | form = QLocalePrivate::DFExponent; never executed (the execution status of this line is deduced): form = QLocalePrivate::DFExponent; | - |
1870 | break; | 0 |
1871 | case 'g': | - |
1872 | form = QLocalePrivate::DFSignificantDigits; executed (the execution status of this line is deduced): form = QLocalePrivate::DFSignificantDigits; | - |
1873 | break; executed: break; Execution Count:68 | 68 |
1874 | default: | - |
1875 | break; | 0 |
1876 | } | - |
1877 | | - |
1878 | if (!(d->m_numberOptions & OmitGroupSeparator)) evaluated: !(d->m_numberOptions & OmitGroupSeparator) yes Evaluation Count:986 | yes Evaluation Count:11 |
| 11-986 |
1879 | flags |= QLocalePrivate::ThousandsGroup; executed: flags |= QLocalePrivate::ThousandsGroup; Execution Count:986 | 986 |
1880 | return d->doubleToString(i, prec, form, -1, flags); executed: return d->doubleToString(i, prec, form, -1, flags); Execution Count:997 | 997 |
1881 | } | - |
1882 | | - |
1883 | /*! | - |
1884 | \fn QLocale QLocale::c() | - |
1885 | | - |
1886 | Returns a QLocale object initialized to the "C" locale. | - |
1887 | | - |
1888 | \sa system() | - |
1889 | */ | - |
1890 | | - |
1891 | /*! | - |
1892 | Returns a QLocale object initialized to the system locale. | - |
1893 | | - |
1894 | On Windows and Mac, this locale will use the decimal/grouping characters and date/time | - |
1895 | formats specified in the system configuration panel. | - |
1896 | | - |
1897 | \sa c() | - |
1898 | */ | - |
1899 | | - |
1900 | QLocale QLocale::system() | - |
1901 | { | - |
1902 | return QLocale(*new QLocalePrivate(localeDataIndex(systemData()))); executed: return QLocale(*new QLocalePrivate(localeDataIndex(systemData()))); Execution Count:4659 | 4659 |
1903 | } | - |
1904 | | - |
1905 | | - |
1906 | /*! | - |
1907 | \since 4.8 | - |
1908 | | - |
1909 | Returns a list of valid locale objects that match the given \a language, \a | - |
1910 | script and \a country. | - |
1911 | | - |
1912 | Getting a list of all locales: | - |
1913 | QList<QLocale> allLocales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::AnyCountry); | - |
1914 | | - |
1915 | Getting a list of locales suitable for Russia: | - |
1916 | QList<QLocale> locales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::Russia); | - |
1917 | */ | - |
1918 | QList<QLocale> QLocale::matchingLocales(QLocale::Language language, | - |
1919 | QLocale::Script script, | - |
1920 | QLocale::Country country) | - |
1921 | { | - |
1922 | if (uint(language) > QLocale::LastLanguage || uint(script) > QLocale::LastScript || partially evaluated: uint(language) > QLocale::LastLanguage no Evaluation Count:0 | yes Evaluation Count:5 |
partially evaluated: uint(script) > QLocale::LastScript no Evaluation Count:0 | yes Evaluation Count:5 |
| 0-5 |
1923 | uint(country) > QLocale::LastCountry) partially evaluated: uint(country) > QLocale::LastCountry no Evaluation Count:0 | yes Evaluation Count:5 |
| 0-5 |
1924 | return QList<QLocale>(); never executed: return QList<QLocale>(); | 0 |
1925 | | - |
1926 | if (language == QLocale::C) evaluated: language == QLocale::C yes Evaluation Count:1 | yes Evaluation Count:4 |
| 1-4 |
1927 | return QList<QLocale>() << QLocale(QLocale::C); executed: return QList<QLocale>() << QLocale(QLocale::C); Execution Count:1 | 1 |
1928 | | - |
1929 | QList<QLocale> result; executed (the execution status of this line is deduced): QList<QLocale> result; | - |
1930 | if (language == QLocale::AnyLanguage && script == QLocale::AnyScript && country == QLocale::AnyCountry) evaluated: language == QLocale::AnyLanguage yes Evaluation Count:2 | yes Evaluation Count:2 |
evaluated: script == QLocale::AnyScript yes Evaluation Count:1 | yes Evaluation Count:1 |
partially evaluated: country == QLocale::AnyCountry no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-2 |
1931 | result.reserve(locale_data_size); never executed: result.reserve(locale_data_size); | 0 |
1932 | const QLocaleData *data = locale_data + locale_index[language]; executed (the execution status of this line is deduced): const QLocaleData *data = locale_data + locale_index[language]; | - |
1933 | while ( (data != locale_data + locale_data_size) evaluated: (data != locale_data + locale_data_size) yes Evaluation Count:890 | yes Evaluation Count:2 |
| 2-890 |
1934 | && (language == QLocale::AnyLanguage || data->m_language_id == uint(language))) { evaluated: language == QLocale::AnyLanguage yes Evaluation Count:876 | yes Evaluation Count:14 |
evaluated: data->m_language_id == uint(language) yes Evaluation Count:12 | yes Evaluation Count:2 |
| 2-876 |
1935 | if ((script == QLocale::AnyScript || data->m_script_id == uint(script)) evaluated: script == QLocale::AnyScript yes Evaluation Count:444 | yes Evaluation Count:444 |
evaluated: data->m_script_id == uint(script) yes Evaluation Count:28 | yes Evaluation Count:416 |
| 28-444 |
1936 | && (country == QLocale::AnyCountry || data->m_country_id == uint(country))) { evaluated: country == QLocale::AnyCountry yes Evaluation Count:28 | yes Evaluation Count:444 |
evaluated: data->m_country_id == uint(country) yes Evaluation Count:4 | yes Evaluation Count:440 |
| 4-444 |
1937 | QLocale locale(*new QLocalePrivate(localeDataIndex(data))); executed (the execution status of this line is deduced): QLocale locale(*new QLocalePrivate(localeDataIndex(data))); | - |
1938 | result.append(locale); executed (the execution status of this line is deduced): result.append(locale); | - |
1939 | } executed: } Execution Count:32 | 32 |
1940 | ++data; executed (the execution status of this line is deduced): ++data; | - |
1941 | } executed: } Execution Count:888 | 888 |
1942 | return result; executed: return result; Execution Count:4 | 4 |
1943 | } | - |
1944 | | - |
1945 | /*! | - |
1946 | \obsolete | - |
1947 | \since 4.3 | - |
1948 | | - |
1949 | Returns the list of countries that have entries for \a language in Qt's locale | - |
1950 | database. If the result is an empty list, then \a language is not represented in | - |
1951 | Qt's locale database. | - |
1952 | | - |
1953 | \sa matchingLocales() | - |
1954 | */ | - |
1955 | QList<QLocale::Country> QLocale::countriesForLanguage(Language language) | - |
1956 | { | - |
1957 | QList<Country> result; never executed (the execution status of this line is deduced): QList<Country> result; | - |
1958 | if (language == C) { never evaluated: language == C | 0 |
1959 | result << AnyCountry; never executed (the execution status of this line is deduced): result << AnyCountry; | - |
1960 | return result; never executed: return result; | 0 |
1961 | } | - |
1962 | | - |
1963 | unsigned language_id = language; never executed (the execution status of this line is deduced): unsigned language_id = language; | - |
1964 | const QLocaleData *data = locale_data + locale_index[language_id]; never executed (the execution status of this line is deduced): const QLocaleData *data = locale_data + locale_index[language_id]; | - |
1965 | while (data->m_language_id == language_id) { never evaluated: data->m_language_id == language_id | 0 |
1966 | const QLocale::Country country = static_cast<Country>(data->m_country_id); never executed (the execution status of this line is deduced): const QLocale::Country country = static_cast<Country>(data->m_country_id); | - |
1967 | if (!result.contains(country)) never evaluated: !result.contains(country) | 0 |
1968 | result.append(country); never executed: result.append(country); | 0 |
1969 | ++data; never executed (the execution status of this line is deduced): ++data; | - |
1970 | } | 0 |
1971 | | - |
1972 | return result; never executed: return result; | 0 |
1973 | } | - |
1974 | | - |
1975 | /*! | - |
1976 | \since 4.2 | - |
1977 | | - |
1978 | Returns the localized name of \a month, in the format specified | - |
1979 | by \a type. | - |
1980 | | - |
1981 | \sa dayName(), standaloneMonthName() | - |
1982 | */ | - |
1983 | QString QLocale::monthName(int month, FormatType type) const | - |
1984 | { | - |
1985 | if (month < 1 || month > 12) evaluated: month < 1 yes Evaluation Count:6 | yes Evaluation Count:27036 |
evaluated: month > 12 yes Evaluation Count:6 | yes Evaluation Count:27030 |
| 6-27036 |
1986 | return QString(); executed: return QString(); Execution Count:12 | 12 |
1987 | | - |
1988 | #ifndef QT_NO_SYSTEMLOCALE | - |
1989 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:12114 | yes Evaluation Count:14916 |
| 12114-14916 |
1990 | QVariant res = systemLocale()->query(type == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(type == LongFormat | - |
1991 | ? QSystemLocale::MonthNameLong : QSystemLocale::MonthNameShort, executed (the execution status of this line is deduced): ? QSystemLocale::MonthNameLong : QSystemLocale::MonthNameShort, | - |
1992 | month); executed (the execution status of this line is deduced): month); | - |
1993 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:12114 | no Evaluation Count:0 |
| 0-12114 |
1994 | return res.toString(); executed: return res.toString(); Execution Count:12114 | 12114 |
1995 | } | 0 |
1996 | #endif | - |
1997 | | - |
1998 | quint32 idx, size; executed (the execution status of this line is deduced): quint32 idx, size; | - |
1999 | switch (type) { | - |
2000 | case QLocale::LongFormat: | - |
2001 | idx = d->m_data->m_long_month_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_long_month_names_idx; | - |
2002 | size = d->m_data->m_long_month_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_long_month_names_size; | - |
2003 | break; executed: break; Execution Count:4445 | 4445 |
2004 | case QLocale::ShortFormat: | - |
2005 | idx = d->m_data->m_short_month_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_short_month_names_idx; | - |
2006 | size = d->m_data->m_short_month_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_short_month_names_size; | - |
2007 | break; executed: break; Execution Count:10468 | 10468 |
2008 | case QLocale::NarrowFormat: | - |
2009 | idx = d->m_data->m_narrow_month_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_narrow_month_names_idx; | - |
2010 | size = d->m_data->m_narrow_month_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_narrow_month_names_size; | - |
2011 | break; executed: break; Execution Count:3 | 3 |
2012 | default: | - |
2013 | return QString(); never executed: return QString(); | 0 |
2014 | } | - |
2015 | return getLocaleListData(months_data + idx, size, month - 1); executed: return getLocaleListData(months_data + idx, size, month - 1); Execution Count:14916 | 14916 |
2016 | } | - |
2017 | | - |
2018 | /*! | - |
2019 | \since 4.5 | - |
2020 | | - |
2021 | Returns the localized name of \a month that is used as a | - |
2022 | standalone text, in the format specified by \a type. | - |
2023 | | - |
2024 | If the locale information doesn't specify the standalone month | - |
2025 | name then return value is the same as in monthName(). | - |
2026 | | - |
2027 | \sa monthName(), standaloneDayName() | - |
2028 | */ | - |
2029 | QString QLocale::standaloneMonthName(int month, FormatType type) const | - |
2030 | { | - |
2031 | if (month < 1 || month > 12) partially evaluated: month < 1 no Evaluation Count:0 | yes Evaluation Count:1222 |
partially evaluated: month > 12 no Evaluation Count:0 | yes Evaluation Count:1222 |
| 0-1222 |
2032 | return QString(); never executed: return QString(); | 0 |
2033 | | - |
2034 | #ifndef QT_NO_SYSTEMLOCALE | - |
2035 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:537 | yes Evaluation Count:685 |
| 537-685 |
2036 | QVariant res = systemLocale()->query(type == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(type == LongFormat | - |
2037 | ? QSystemLocale::MonthNameLong : QSystemLocale::MonthNameShort, executed (the execution status of this line is deduced): ? QSystemLocale::MonthNameLong : QSystemLocale::MonthNameShort, | - |
2038 | month); executed (the execution status of this line is deduced): month); | - |
2039 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:537 | no Evaluation Count:0 |
| 0-537 |
2040 | return res.toString(); executed: return res.toString(); Execution Count:537 | 537 |
2041 | } | 0 |
2042 | #endif | - |
2043 | | - |
2044 | quint32 idx, size; executed (the execution status of this line is deduced): quint32 idx, size; | - |
2045 | switch (type) { | - |
2046 | case QLocale::LongFormat: | - |
2047 | idx = d->m_data->m_standalone_long_month_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_standalone_long_month_names_idx; | - |
2048 | size = d->m_data->m_standalone_long_month_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_standalone_long_month_names_size; | - |
2049 | break; executed: break; Execution Count:680 | 680 |
2050 | case QLocale::ShortFormat: | - |
2051 | idx = d->m_data->m_standalone_short_month_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_standalone_short_month_names_idx; | - |
2052 | size = d->m_data->m_standalone_short_month_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_standalone_short_month_names_size; | - |
2053 | break; executed: break; Execution Count:3 | 3 |
2054 | case QLocale::NarrowFormat: | - |
2055 | idx = d->m_data->m_standalone_narrow_month_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_standalone_narrow_month_names_idx; | - |
2056 | size = d->m_data->m_standalone_narrow_month_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_standalone_narrow_month_names_size; | - |
2057 | break; executed: break; Execution Count:2 | 2 |
2058 | default: | - |
2059 | return QString(); never executed: return QString(); | 0 |
2060 | } | - |
2061 | QString name = getLocaleListData(months_data + idx, size, month - 1); executed (the execution status of this line is deduced): QString name = getLocaleListData(months_data + idx, size, month - 1); | - |
2062 | if (name.isEmpty()) partially evaluated: name.isEmpty() no Evaluation Count:0 | yes Evaluation Count:685 |
| 0-685 |
2063 | return monthName(month, type); never executed: return monthName(month, type); | 0 |
2064 | return name; executed: return name; Execution Count:685 | 685 |
2065 | } | - |
2066 | | - |
2067 | /*! | - |
2068 | \since 4.2 | - |
2069 | | - |
2070 | Returns the localized name of the \a day (where 1 represents | - |
2071 | Monday, 2 represents Tuesday and so on), in the format specified | - |
2072 | by \a type. | - |
2073 | | - |
2074 | \sa monthName(), standaloneDayName() | - |
2075 | */ | - |
2076 | QString QLocale::dayName(int day, FormatType type) const | - |
2077 | { | - |
2078 | if (day < 1 || day > 7) partially evaluated: day < 1 no Evaluation Count:0 | yes Evaluation Count:2463 |
partially evaluated: day > 7 no Evaluation Count:0 | yes Evaluation Count:2463 |
| 0-2463 |
2079 | return QString(); never executed: return QString(); | 0 |
2080 | | - |
2081 | #ifndef QT_NO_SYSTEMLOCALE | - |
2082 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:821 | yes Evaluation Count:1642 |
| 821-1642 |
2083 | QVariant res = systemLocale()->query(type == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(type == LongFormat | - |
2084 | ? QSystemLocale::DayNameLong : QSystemLocale::DayNameShort, executed (the execution status of this line is deduced): ? QSystemLocale::DayNameLong : QSystemLocale::DayNameShort, | - |
2085 | day); executed (the execution status of this line is deduced): day); | - |
2086 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:821 | no Evaluation Count:0 |
| 0-821 |
2087 | return res.toString(); executed: return res.toString(); Execution Count:821 | 821 |
2088 | } | 0 |
2089 | #endif | - |
2090 | if (day == 7) evaluated: day == 7 yes Evaluation Count:288 | yes Evaluation Count:1354 |
| 288-1354 |
2091 | day = 0; executed: day = 0; Execution Count:288 | 288 |
2092 | | - |
2093 | quint32 idx, size; executed (the execution status of this line is deduced): quint32 idx, size; | - |
2094 | switch (type) { | - |
2095 | case QLocale::LongFormat: | - |
2096 | idx = d->m_data->m_long_day_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_long_day_names_idx; | - |
2097 | size = d->m_data->m_long_day_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_long_day_names_size; | - |
2098 | break; executed: break; Execution Count:311 | 311 |
2099 | case QLocale::ShortFormat: | - |
2100 | idx = d->m_data->m_short_day_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_short_day_names_idx; | - |
2101 | size = d->m_data->m_short_day_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_short_day_names_size; | - |
2102 | break; executed: break; Execution Count:1329 | 1329 |
2103 | case QLocale::NarrowFormat: | - |
2104 | idx = d->m_data->m_narrow_day_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_narrow_day_names_idx; | - |
2105 | size = d->m_data->m_narrow_day_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_narrow_day_names_size; | - |
2106 | break; executed: break; Execution Count:2 | 2 |
2107 | default: | - |
2108 | return QString(); never executed: return QString(); | 0 |
2109 | } | - |
2110 | return getLocaleListData(days_data + idx, size, day); executed: return getLocaleListData(days_data + idx, size, day); Execution Count:1642 | 1642 |
2111 | } | - |
2112 | | - |
2113 | /*! | - |
2114 | \since 4.5 | - |
2115 | | - |
2116 | Returns the localized name of the \a day (where 1 represents | - |
2117 | Monday, 2 represents Tuesday and so on) that is used as a | - |
2118 | standalone text, in the format specified by \a type. | - |
2119 | | - |
2120 | If the locale information does not specify the standalone day | - |
2121 | name then return value is the same as in dayName(). | - |
2122 | | - |
2123 | \sa dayName(), standaloneMonthName() | - |
2124 | */ | - |
2125 | QString QLocale::standaloneDayName(int day, FormatType type) const | - |
2126 | { | - |
2127 | if (day < 1 || day > 7) evaluated: day < 1 yes Evaluation Count:3 | yes Evaluation Count:40 |
evaluated: day > 7 yes Evaluation Count:3 | yes Evaluation Count:37 |
| 3-40 |
2128 | return QString(); executed: return QString(); Execution Count:6 | 6 |
2129 | | - |
2130 | #ifndef QT_NO_SYSTEMLOCALE | - |
2131 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:28 | yes Evaluation Count:9 |
| 9-28 |
2132 | QVariant res = systemLocale()->query(type == LongFormat executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(type == LongFormat | - |
2133 | ? QSystemLocale::DayNameLong : QSystemLocale::DayNameShort, executed (the execution status of this line is deduced): ? QSystemLocale::DayNameLong : QSystemLocale::DayNameShort, | - |
2134 | day); executed (the execution status of this line is deduced): day); | - |
2135 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:28 | no Evaluation Count:0 |
| 0-28 |
2136 | return res.toString(); executed: return res.toString(); Execution Count:28 | 28 |
2137 | } | 0 |
2138 | #endif | - |
2139 | if (day == 7) evaluated: day == 7 yes Evaluation Count:6 | yes Evaluation Count:3 |
| 3-6 |
2140 | day = 0; executed: day = 0; Execution Count:6 | 6 |
2141 | | - |
2142 | quint32 idx, size; executed (the execution status of this line is deduced): quint32 idx, size; | - |
2143 | switch (type) { | - |
2144 | case QLocale::LongFormat: | - |
2145 | idx = d->m_data->m_standalone_long_day_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_standalone_long_day_names_idx; | - |
2146 | size = d->m_data->m_standalone_long_day_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_standalone_long_day_names_size; | - |
2147 | break; executed: break; Execution Count:5 | 5 |
2148 | case QLocale::ShortFormat: | - |
2149 | idx = d->m_data->m_standalone_short_day_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_standalone_short_day_names_idx; | - |
2150 | size = d->m_data->m_standalone_short_day_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_standalone_short_day_names_size; | - |
2151 | break; executed: break; Execution Count:2 | 2 |
2152 | case QLocale::NarrowFormat: | - |
2153 | idx = d->m_data->m_standalone_narrow_day_names_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_standalone_narrow_day_names_idx; | - |
2154 | size = d->m_data->m_standalone_narrow_day_names_size; executed (the execution status of this line is deduced): size = d->m_data->m_standalone_narrow_day_names_size; | - |
2155 | break; executed: break; Execution Count:2 | 2 |
2156 | default: | - |
2157 | return QString(); never executed: return QString(); | 0 |
2158 | } | - |
2159 | QString name = getLocaleListData(days_data + idx, size, day); executed (the execution status of this line is deduced): QString name = getLocaleListData(days_data + idx, size, day); | - |
2160 | if (name.isEmpty()) partially evaluated: name.isEmpty() no Evaluation Count:0 | yes Evaluation Count:9 |
| 0-9 |
2161 | return dayName(day == 0 ? 7 : day, type); never executed: return dayName(day == 0 ? 7 : day, type); | 0 |
2162 | return name; executed: return name; Execution Count:9 | 9 |
2163 | } | - |
2164 | | - |
2165 | /*! | - |
2166 | \since 4.8 | - |
2167 | | - |
2168 | Returns the first day of the week according to the current locale. | - |
2169 | */ | - |
2170 | Qt::DayOfWeek QLocale::firstDayOfWeek() const | - |
2171 | { | - |
2172 | #ifndef QT_NO_SYSTEMLOCALE | - |
2173 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:22 | yes Evaluation Count:37 |
| 22-37 |
2174 | QVariant res = systemLocale()->query(QSystemLocale::FirstDayOfWeek, QVariant()); executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::FirstDayOfWeek, QVariant()); | - |
2175 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:22 | no Evaluation Count:0 |
| 0-22 |
2176 | return static_cast<Qt::DayOfWeek>(res.toUInt()); executed: return static_cast<Qt::DayOfWeek>(res.toUInt()); Execution Count:22 | 22 |
2177 | } | 0 |
2178 | #endif | - |
2179 | return static_cast<Qt::DayOfWeek>(d->m_data->m_first_day_of_week); executed: return static_cast<Qt::DayOfWeek>(d->m_data->m_first_day_of_week); Execution Count:37 | 37 |
2180 | } | - |
2181 | | - |
2182 | QLocale::MeasurementSystem QLocalePrivate::measurementSystem() const | - |
2183 | { | - |
2184 | for (int i = 0; i < ImperialMeasurementSystemsCount; ++i) { evaluated: i < ImperialMeasurementSystemsCount yes Evaluation Count:16 | yes Evaluation Count:2 |
| 2-16 |
2185 | if (ImperialMeasurementSystems[i].languageId == m_data->m_language_id evaluated: ImperialMeasurementSystems[i].languageId == m_data->m_language_id yes Evaluation Count:7 | yes Evaluation Count:9 |
| 7-9 |
2186 | && ImperialMeasurementSystems[i].countryId == m_data->m_country_id) { evaluated: ImperialMeasurementSystems[i].countryId == m_data->m_country_id yes Evaluation Count:2 | yes Evaluation Count:5 |
| 2-5 |
2187 | return ImperialMeasurementSystems[i].system; executed: return ImperialMeasurementSystems[i].system; Execution Count:2 | 2 |
2188 | } | - |
2189 | } executed: } Execution Count:14 | 14 |
2190 | return QLocale::MetricSystem; executed: return QLocale::MetricSystem; Execution Count:2 | 2 |
2191 | } | - |
2192 | | - |
2193 | /*! | - |
2194 | \since 4.8 | - |
2195 | | - |
2196 | Returns a list of days that are considered weekdays according to the current locale. | - |
2197 | */ | - |
2198 | QList<Qt::DayOfWeek> QLocale::weekdays() const | - |
2199 | { | - |
2200 | #ifndef QT_NO_SYSTEMLOCALE | - |
2201 | if (d->m_data == systemData()) { partially evaluated: d->m_data == systemData() no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
2202 | QVariant res = systemLocale()->query(QSystemLocale::Weekdays, QVariant()); never executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::Weekdays, QVariant()); | - |
2203 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
2204 | return static_cast<QList<Qt::DayOfWeek> >(res.value<QList<Qt::DayOfWeek> >()); never executed: return static_cast<QList<Qt::DayOfWeek> >(res.value<QList<Qt::DayOfWeek> >()); | 0 |
2205 | } | 0 |
2206 | #endif | - |
2207 | QList<Qt::DayOfWeek> weekdays; executed (the execution status of this line is deduced): QList<Qt::DayOfWeek> weekdays; | - |
2208 | quint16 weekendStart = d->m_data->m_weekend_start; executed (the execution status of this line is deduced): quint16 weekendStart = d->m_data->m_weekend_start; | - |
2209 | quint16 weekendEnd = d->m_data->m_weekend_end; executed (the execution status of this line is deduced): quint16 weekendEnd = d->m_data->m_weekend_end; | - |
2210 | for (int day = Qt::Monday; day <= Qt::Sunday; day++) { evaluated: day <= Qt::Sunday yes Evaluation Count:7 | yes Evaluation Count:1 |
| 1-7 |
2211 | if ((weekendEnd >= weekendStart && (day < weekendStart || day > weekendEnd)) || partially evaluated: weekendEnd >= weekendStart yes Evaluation Count:7 | no Evaluation Count:0 |
evaluated: day < weekendStart yes Evaluation Count:5 | yes Evaluation Count:2 |
partially evaluated: day > weekendEnd no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-7 |
2212 | (weekendEnd < weekendStart && (day > weekendEnd && day < weekendStart))) partially evaluated: weekendEnd < weekendStart no Evaluation Count:0 | yes Evaluation Count:2 |
never evaluated: day > weekendEnd never evaluated: day < weekendStart | 0-2 |
2213 | weekdays << static_cast<Qt::DayOfWeek>(day); executed: weekdays << static_cast<Qt::DayOfWeek>(day); Execution Count:5 | 5 |
2214 | } executed: } Execution Count:7 | 7 |
2215 | return weekdays; executed: return weekdays; Execution Count:1 | 1 |
2216 | } | - |
2217 | | - |
2218 | /*! | - |
2219 | \since 4.4 | - |
2220 | | - |
2221 | Returns the measurement system for the locale. | - |
2222 | */ | - |
2223 | QLocale::MeasurementSystem QLocale::measurementSystem() const | - |
2224 | { | - |
2225 | #ifndef QT_NO_SYSTEMLOCALE | - |
2226 | if (d->m_data == systemData()) { partially evaluated: d->m_data == systemData() no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
2227 | QVariant res = systemLocale()->query(QSystemLocale::MeasurementSystem, QVariant()); never executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::MeasurementSystem, QVariant()); | - |
2228 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
2229 | return MeasurementSystem(res.toInt()); never executed: return MeasurementSystem(res.toInt()); | 0 |
2230 | } | 0 |
2231 | #endif | - |
2232 | | - |
2233 | return d->measurementSystem(); executed: return d->measurementSystem(); Execution Count:4 | 4 |
2234 | } | - |
2235 | | - |
2236 | /*! | - |
2237 | \since 4.7 | - |
2238 | | - |
2239 | Returns the text direction of the language. | - |
2240 | */ | - |
2241 | Qt::LayoutDirection QLocale::textDirection() const | - |
2242 | { | - |
2243 | switch (language()) { | - |
2244 | case QLocale::Arabic: | - |
2245 | case QLocale::Hebrew: | - |
2246 | case QLocale::Persian: | - |
2247 | case QLocale::Pashto: | - |
2248 | case QLocale::Urdu: | - |
2249 | case QLocale::Syriac: | - |
2250 | case QLocale::Divehi: | - |
2251 | return Qt::RightToLeft; never executed: return Qt::RightToLeft; | 0 |
2252 | case QLocale::Punjabi: | - |
2253 | case QLocale::Uzbek: | - |
2254 | if (script() == QLocale::ArabicScript) never evaluated: script() == QLocale::ArabicScript | 0 |
2255 | return Qt::RightToLeft; never executed: return Qt::RightToLeft; | 0 |
2256 | // fall through | - |
2257 | default: | - |
2258 | break; | 0 |
2259 | } | - |
2260 | return Qt::LeftToRight; never executed: return Qt::LeftToRight; | 0 |
2261 | } | - |
2262 | | - |
2263 | /*! | - |
2264 | \since 4.8 | - |
2265 | | - |
2266 | Returns an uppercase copy of \a str. | - |
2267 | */ | - |
2268 | QString QLocale::toUpper(const QString &str) const | - |
2269 | { | - |
2270 | #ifdef QT_USE_ICU | - |
2271 | bool ok = true; executed (the execution status of this line is deduced): bool ok = true; | - |
2272 | QString result = QIcu::toUpper(d->m_localeID, str, &ok); executed (the execution status of this line is deduced): QString result = QIcu::toUpper(d->m_localeID, str, &ok); | - |
2273 | if (ok) partially evaluated: ok yes Evaluation Count:3 | no Evaluation Count:0 |
| 0-3 |
2274 | return result; executed: return result; Execution Count:3 | 3 |
2275 | // else fall through and use Qt's toUpper | - |
2276 | #endif | - |
2277 | return str.toUpper(); never executed: return str.toUpper(); | 0 |
2278 | } | - |
2279 | | - |
2280 | /*! | - |
2281 | \since 4.8 | - |
2282 | | - |
2283 | Returns a lowercase copy of \a str. | - |
2284 | */ | - |
2285 | QString QLocale::toLower(const QString &str) const | - |
2286 | { | - |
2287 | #ifdef QT_USE_ICU | - |
2288 | bool ok = true; executed (the execution status of this line is deduced): bool ok = true; | - |
2289 | QString result = QIcu::toLower(d->m_localeID, str, &ok); executed (the execution status of this line is deduced): QString result = QIcu::toLower(d->m_localeID, str, &ok); | - |
2290 | if (ok) partially evaluated: ok yes Evaluation Count:5 | no Evaluation Count:0 |
| 0-5 |
2291 | return result; executed: return result; Execution Count:5 | 5 |
2292 | // else fall through and use Qt's toUpper | - |
2293 | #endif | - |
2294 | return str.toLower(); never executed: return str.toLower(); | 0 |
2295 | } | - |
2296 | | - |
2297 | | - |
2298 | /*! | - |
2299 | \since 4.5 | - |
2300 | | - |
2301 | Returns the localized name of the "AM" suffix for times specified using | - |
2302 | the conventions of the 12-hour clock. | - |
2303 | | - |
2304 | \sa pmText() | - |
2305 | */ | - |
2306 | QString QLocale::amText() const | - |
2307 | { | - |
2308 | #ifndef QT_NO_SYSTEMLOCALE | - |
2309 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:683 | yes Evaluation Count:1129 |
| 683-1129 |
2310 | QVariant res = systemLocale()->query(QSystemLocale::AMText, QVariant()); executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::AMText, QVariant()); | - |
2311 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:683 | no Evaluation Count:0 |
| 0-683 |
2312 | return res.toString(); executed: return res.toString(); Execution Count:683 | 683 |
2313 | } | 0 |
2314 | #endif | - |
2315 | return getLocaleData(am_data + d->m_data->m_am_idx, d->m_data->m_am_size); executed: return getLocaleData(am_data + d->m_data->m_am_idx, d->m_data->m_am_size); Execution Count:1129 | 1129 |
2316 | } | - |
2317 | | - |
2318 | /*! | - |
2319 | \since 4.5 | - |
2320 | | - |
2321 | Returns the localized name of the "PM" suffix for times specified using | - |
2322 | the conventions of the 12-hour clock. | - |
2323 | | - |
2324 | \sa amText() | - |
2325 | */ | - |
2326 | QString QLocale::pmText() const | - |
2327 | { | - |
2328 | #ifndef QT_NO_SYSTEMLOCALE | - |
2329 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:117 | yes Evaluation Count:1379 |
| 117-1379 |
2330 | QVariant res = systemLocale()->query(QSystemLocale::PMText, QVariant()); executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::PMText, QVariant()); | - |
2331 | if (!res.isNull()) partially evaluated: !res.isNull() yes Evaluation Count:117 | no Evaluation Count:0 |
| 0-117 |
2332 | return res.toString(); executed: return res.toString(); Execution Count:117 | 117 |
2333 | } | 0 |
2334 | #endif | - |
2335 | return getLocaleData(pm_data + d->m_data->m_pm_idx, d->m_data->m_pm_size); executed: return getLocaleData(pm_data + d->m_data->m_pm_idx, d->m_data->m_pm_size); Execution Count:1379 | 1379 |
2336 | } | - |
2337 | | - |
2338 | | - |
2339 | QString QLocalePrivate::dateTimeToString(const QString &format, const QDate *date, const QTime *time, | - |
2340 | const QLocale *q) const | - |
2341 | { | - |
2342 | Q_ASSERT(date || time); executed (the execution status of this line is deduced): qt_noop(); | - |
2343 | if ((date && !date->isValid()) || (time && !time->isValid())) evaluated: date yes Evaluation Count:5865 | yes Evaluation Count:1700 |
evaluated: !date->isValid() yes Evaluation Count:3 | yes Evaluation Count:5862 |
evaluated: time yes Evaluation Count:5819 | yes Evaluation Count:1743 |
evaluated: !time->isValid() yes Evaluation Count:1 | yes Evaluation Count:5818 |
| 1-5865 |
2344 | return QString(); executed: return QString(); Execution Count:4 | 4 |
2345 | const bool format_am_pm = time && timeFormatContainsAP(format); evaluated: time yes Evaluation Count:5818 | yes Evaluation Count:1743 |
evaluated: timeFormatContainsAP(format) yes Evaluation Count:2487 | yes Evaluation Count:3331 |
| 1743-5818 |
2346 | | - |
2347 | enum { AM, PM } am_pm = AM; executed (the execution status of this line is deduced): enum { AM, PM } am_pm = AM; | - |
2348 | int hour12 = time ? time->hour() : -1; evaluated: time yes Evaluation Count:5818 | yes Evaluation Count:1743 |
| 1743-5818 |
2349 | if (time) { evaluated: time yes Evaluation Count:5818 | yes Evaluation Count:1743 |
| 1743-5818 |
2350 | if (hour12 == 0) { evaluated: hour12 == 0 yes Evaluation Count:2103 | yes Evaluation Count:3715 |
| 2103-3715 |
2351 | am_pm = AM; executed (the execution status of this line is deduced): am_pm = AM; | - |
2352 | hour12 = 12; executed (the execution status of this line is deduced): hour12 = 12; | - |
2353 | } else if (hour12 < 12) { executed: } Execution Count:2103 evaluated: hour12 < 12 yes Evaluation Count:1920 | yes Evaluation Count:1795 |
| 1795-2103 |
2354 | am_pm = AM; executed (the execution status of this line is deduced): am_pm = AM; | - |
2355 | } else if (hour12 == 12) { executed: } Execution Count:1920 evaluated: hour12 == 12 yes Evaluation Count:402 | yes Evaluation Count:1393 |
| 402-1920 |
2356 | am_pm = PM; executed (the execution status of this line is deduced): am_pm = PM; | - |
2357 | } else { executed: } Execution Count:402 | 402 |
2358 | am_pm = PM; executed (the execution status of this line is deduced): am_pm = PM; | - |
2359 | hour12 -= 12; executed (the execution status of this line is deduced): hour12 -= 12; | - |
2360 | } executed: } Execution Count:1393 | 1393 |
2361 | } | - |
2362 | | - |
2363 | QString result; executed (the execution status of this line is deduced): QString result; | - |
2364 | | - |
2365 | int i = 0; executed (the execution status of this line is deduced): int i = 0; | - |
2366 | while (i < format.size()) { evaluated: i < format.size() yes Evaluation Count:49681 | yes Evaluation Count:7561 |
| 7561-49681 |
2367 | if (format.at(i).unicode() == '\'') { evaluated: format.at(i).unicode() == '\'' yes Evaluation Count:776 | yes Evaluation Count:48905 |
| 776-48905 |
2368 | result.append(qt_readEscapedFormatString(format, &i)); executed (the execution status of this line is deduced): result.append(qt_readEscapedFormatString(format, &i)); | - |
2369 | continue; executed: continue; Execution Count:776 | 776 |
2370 | } | - |
2371 | | - |
2372 | const QChar c = format.at(i); executed (the execution status of this line is deduced): const QChar c = format.at(i); | - |
2373 | int repeat = qt_repeatCount(format, i); executed (the execution status of this line is deduced): int repeat = qt_repeatCount(format, i); | - |
2374 | bool used = false; executed (the execution status of this line is deduced): bool used = false; | - |
2375 | if (date) { evaluated: date yes Evaluation Count:40404 | yes Evaluation Count:8501 |
| 8501-40404 |
2376 | switch (c.unicode()) { | - |
2377 | case 'y': | - |
2378 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2379 | if (repeat >= 4) evaluated: repeat >= 4 yes Evaluation Count:1949 | yes Evaluation Count:2388 |
| 1949-2388 |
2380 | repeat = 4; executed: repeat = 4; Execution Count:1949 | 1949 |
2381 | else if (repeat >= 2) evaluated: repeat >= 2 yes Evaluation Count:2376 | yes Evaluation Count:12 |
| 12-2376 |
2382 | repeat = 2; executed: repeat = 2; Execution Count:2376 | 2376 |
2383 | | - |
2384 | switch (repeat) { | - |
2385 | case 4: | - |
2386 | result.append(longLongToString(date->year(), -1, 10, 4, QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): result.append(longLongToString(date->year(), -1, 10, 4, QLocalePrivate::ZeroPadded)); | - |
2387 | break; executed: break; Execution Count:1949 | 1949 |
2388 | case 2: | - |
2389 | result.append(longLongToString(date->year() % 100, -1, 10, 2, executed (the execution status of this line is deduced): result.append(longLongToString(date->year() % 100, -1, 10, 2, | - |
2390 | QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): QLocalePrivate::ZeroPadded)); | - |
2391 | break; executed: break; Execution Count:2376 | 2376 |
2392 | default: | - |
2393 | repeat = 1; executed (the execution status of this line is deduced): repeat = 1; | - |
2394 | result.append(c); executed (the execution status of this line is deduced): result.append(c); | - |
2395 | break; executed: break; Execution Count:12 | 12 |
2396 | } | - |
2397 | break; executed: break; Execution Count:4337 | 4337 |
2398 | | - |
2399 | case 'M': | - |
2400 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2401 | repeat = qMin(repeat, 4); executed (the execution status of this line is deduced): repeat = qMin(repeat, 4); | - |
2402 | switch (repeat) { | - |
2403 | case 1: | - |
2404 | result.append(longLongToString(date->month())); executed (the execution status of this line is deduced): result.append(longLongToString(date->month())); | - |
2405 | break; executed: break; Execution Count:1818 | 1818 |
2406 | case 2: | - |
2407 | result.append(longLongToString(date->month(), -1, 10, 2, QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): result.append(longLongToString(date->month(), -1, 10, 2, QLocalePrivate::ZeroPadded)); | - |
2408 | break; executed: break; Execution Count:1169 | 1169 |
2409 | case 3: | - |
2410 | result.append(q->monthName(date->month(), QLocale::ShortFormat)); executed (the execution status of this line is deduced): result.append(q->monthName(date->month(), QLocale::ShortFormat)); | - |
2411 | break; executed: break; Execution Count:1358 | 1358 |
2412 | case 4: | - |
2413 | result.append(q->monthName(date->month(), QLocale::LongFormat)); executed (the execution status of this line is deduced): result.append(q->monthName(date->month(), QLocale::LongFormat)); | - |
2414 | break; executed: break; Execution Count:56 | 56 |
2415 | } | - |
2416 | break; executed: break; Execution Count:4401 | 4401 |
2417 | | - |
2418 | case 'd': | - |
2419 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2420 | repeat = qMin(repeat, 4); executed (the execution status of this line is deduced): repeat = qMin(repeat, 4); | - |
2421 | switch (repeat) { | - |
2422 | case 1: | - |
2423 | result.append(longLongToString(date->day())); executed (the execution status of this line is deduced): result.append(longLongToString(date->day())); | - |
2424 | break; executed: break; Execution Count:1991 | 1991 |
2425 | case 2: | - |
2426 | result.append(longLongToString(date->day(), -1, 10, 2, QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): result.append(longLongToString(date->day(), -1, 10, 2, QLocalePrivate::ZeroPadded)); | - |
2427 | break; executed: break; Execution Count:2383 | 2383 |
2428 | case 3: | - |
2429 | result.append(q->dayName(date->dayOfWeek(), QLocale::ShortFormat)); executed (the execution status of this line is deduced): result.append(q->dayName(date->dayOfWeek(), QLocale::ShortFormat)); | - |
2430 | break; executed: break; Execution Count:711 | 711 |
2431 | case 4: | - |
2432 | result.append(q->dayName(date->dayOfWeek(), QLocale::LongFormat)); executed (the execution status of this line is deduced): result.append(q->dayName(date->dayOfWeek(), QLocale::LongFormat)); | - |
2433 | break; executed: break; Execution Count:21 | 21 |
2434 | } | - |
2435 | break; executed: break; Execution Count:5106 | 5106 |
2436 | | - |
2437 | default: | - |
2438 | break; executed: break; Execution Count:26560 | 26560 |
2439 | } | - |
2440 | } executed: } Execution Count:40404 | 40404 |
2441 | if (!used && time) { evaluated: !used yes Evaluation Count:35061 | yes Evaluation Count:13844 |
evaluated: time yes Evaluation Count:31598 | yes Evaluation Count:3463 |
| 3463-35061 |
2442 | switch (c.unicode()) { | - |
2443 | case 'h': { | - |
2444 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2445 | repeat = qMin(repeat, 2); executed (the execution status of this line is deduced): repeat = qMin(repeat, 2); | - |
2446 | const int hour = format_am_pm ? hour12 : time->hour(); evaluated: format_am_pm yes Evaluation Count:2436 | yes Evaluation Count:1667 |
| 1667-2436 |
2447 | | - |
2448 | switch (repeat) { | - |
2449 | case 1: | - |
2450 | result.append(longLongToString(hour)); executed (the execution status of this line is deduced): result.append(longLongToString(hour)); | - |
2451 | break; executed: break; Execution Count:1792 | 1792 |
2452 | case 2: | - |
2453 | result.append(longLongToString(hour, -1, 10, 2, QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): result.append(longLongToString(hour, -1, 10, 2, QLocalePrivate::ZeroPadded)); | - |
2454 | break; executed: break; Execution Count:2311 | 2311 |
2455 | } | - |
2456 | break; executed: break; Execution Count:4103 | 4103 |
2457 | } | - |
2458 | case 'H': | - |
2459 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2460 | repeat = qMin(repeat, 2); executed (the execution status of this line is deduced): repeat = qMin(repeat, 2); | - |
2461 | switch (repeat) { | - |
2462 | case 1: | - |
2463 | result.append(longLongToString(time->hour())); executed (the execution status of this line is deduced): result.append(longLongToString(time->hour())); | - |
2464 | break; executed: break; Execution Count:11 | 11 |
2465 | case 2: | - |
2466 | result.append(longLongToString(time->hour(), -1, 10, 2, QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): result.append(longLongToString(time->hour(), -1, 10, 2, QLocalePrivate::ZeroPadded)); | - |
2467 | break; executed: break; Execution Count:180 | 180 |
2468 | } | - |
2469 | break; executed: break; Execution Count:191 | 191 |
2470 | | - |
2471 | case 'm': | - |
2472 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2473 | repeat = qMin(repeat, 2); executed (the execution status of this line is deduced): repeat = qMin(repeat, 2); | - |
2474 | switch (repeat) { | - |
2475 | case 1: | - |
2476 | result.append(longLongToString(time->minute())); executed (the execution status of this line is deduced): result.append(longLongToString(time->minute())); | - |
2477 | break; executed: break; Execution Count:105 | 105 |
2478 | case 2: | - |
2479 | result.append(longLongToString(time->minute(), -1, 10, 2, QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): result.append(longLongToString(time->minute(), -1, 10, 2, QLocalePrivate::ZeroPadded)); | - |
2480 | break; executed: break; Execution Count:3990 | 3990 |
2481 | } | - |
2482 | break; executed: break; Execution Count:4095 | 4095 |
2483 | | - |
2484 | case 's': | - |
2485 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2486 | repeat = qMin(repeat, 2); executed (the execution status of this line is deduced): repeat = qMin(repeat, 2); | - |
2487 | switch (repeat) { | - |
2488 | case 1: | - |
2489 | result.append(longLongToString(time->second())); executed (the execution status of this line is deduced): result.append(longLongToString(time->second())); | - |
2490 | break; executed: break; Execution Count:102 | 102 |
2491 | case 2: | - |
2492 | result.append(longLongToString(time->second(), -1, 10, 2, QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): result.append(longLongToString(time->second(), -1, 10, 2, QLocalePrivate::ZeroPadded)); | - |
2493 | break; executed: break; Execution Count:2259 | 2259 |
2494 | } | - |
2495 | break; executed: break; Execution Count:2361 | 2361 |
2496 | | - |
2497 | case 'a': | - |
2498 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2499 | if (i + 1 < format.length() && format.at(i + 1).unicode() == 'p') { evaluated: i + 1 < format.length() yes Evaluation Count:731 | yes Evaluation Count:41 |
evaluated: format.at(i + 1).unicode() == 'p' yes Evaluation Count:729 | yes Evaluation Count:2 |
| 2-731 |
2500 | repeat = 2; executed (the execution status of this line is deduced): repeat = 2; | - |
2501 | } else { executed: } Execution Count:729 | 729 |
2502 | repeat = 1; executed (the execution status of this line is deduced): repeat = 1; | - |
2503 | } executed: } Execution Count:43 | 43 |
2504 | result.append(am_pm == AM ? q->amText().toLower() : q->pmText().toLower()); executed (the execution status of this line is deduced): result.append(am_pm == AM ? q->amText().toLower() : q->pmText().toLower()); | - |
2505 | break; executed: break; Execution Count:772 | 772 |
2506 | | - |
2507 | case 'A': | - |
2508 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2509 | if (i + 1 < format.length() && format.at(i + 1).unicode() == 'P') { partially evaluated: i + 1 < format.length() yes Evaluation Count:1720 | no Evaluation Count:0 |
partially evaluated: format.at(i + 1).unicode() == 'P' yes Evaluation Count:1720 | no Evaluation Count:0 |
| 0-1720 |
2510 | repeat = 2; executed (the execution status of this line is deduced): repeat = 2; | - |
2511 | } else { executed: } Execution Count:1720 | 1720 |
2512 | repeat = 1; never executed (the execution status of this line is deduced): repeat = 1; | - |
2513 | } | 0 |
2514 | result.append(am_pm == AM ? q->amText().toUpper() : q->pmText().toUpper()); executed (the execution status of this line is deduced): result.append(am_pm == AM ? q->amText().toUpper() : q->pmText().toUpper()); | - |
2515 | break; executed: break; Execution Count:1720 | 1720 |
2516 | | - |
2517 | case 'z': | - |
2518 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2519 | if (repeat >= 3) { evaluated: repeat >= 3 yes Evaluation Count:176 | yes Evaluation Count:82 |
| 82-176 |
2520 | repeat = 3; executed (the execution status of this line is deduced): repeat = 3; | - |
2521 | } else { executed: } Execution Count:176 | 176 |
2522 | repeat = 1; executed (the execution status of this line is deduced): repeat = 1; | - |
2523 | } executed: } Execution Count:82 | 82 |
2524 | switch (repeat) { | - |
2525 | case 1: | - |
2526 | result.append(longLongToString(time->msec())); executed (the execution status of this line is deduced): result.append(longLongToString(time->msec())); | - |
2527 | break; executed: break; Execution Count:82 | 82 |
2528 | case 3: | - |
2529 | result.append(longLongToString(time->msec(), -1, 10, 3, QLocalePrivate::ZeroPadded)); executed (the execution status of this line is deduced): result.append(longLongToString(time->msec(), -1, 10, 3, QLocalePrivate::ZeroPadded)); | - |
2530 | break; executed: break; Execution Count:176 | 176 |
2531 | } | - |
2532 | break; executed: break; Execution Count:258 | 258 |
2533 | | - |
2534 | case 't': | - |
2535 | used = true; executed (the execution status of this line is deduced): used = true; | - |
2536 | repeat = 1; executed (the execution status of this line is deduced): repeat = 1; | - |
2537 | result.append(timeZone()); executed (the execution status of this line is deduced): result.append(timeZone()); | - |
2538 | break; executed: break; Execution Count:2 | 2 |
2539 | default: | - |
2540 | break; executed: break; Execution Count:18096 | 18096 |
2541 | } | - |
2542 | } executed: } Execution Count:31598 | 31598 |
2543 | if (!used) { evaluated: !used yes Evaluation Count:21559 | yes Evaluation Count:27346 |
| 21559-27346 |
2544 | result.append(QString(repeat, c)); executed (the execution status of this line is deduced): result.append(QString(repeat, c)); | - |
2545 | } executed: } Execution Count:21559 | 21559 |
2546 | i += repeat; executed (the execution status of this line is deduced): i += repeat; | - |
2547 | } executed: } Execution Count:48905 | 48905 |
2548 | | - |
2549 | return result; executed: return result; Execution Count:7561 | 7561 |
2550 | } | - |
2551 | | - |
2552 | QString QLocalePrivate::doubleToString(double d, | - |
2553 | int precision, | - |
2554 | DoubleForm form, | - |
2555 | int width, | - |
2556 | unsigned flags) const | - |
2557 | { | - |
2558 | return QLocalePrivate::doubleToString(zero(), plus(), minus(), exponential(), executed: return QLocalePrivate::doubleToString(zero(), plus(), minus(), exponential(), group(), decimal(), d, precision, form, width, flags); Execution Count:1506060 | 1506060 |
2559 | group(), decimal(), executed: return QLocalePrivate::doubleToString(zero(), plus(), minus(), exponential(), group(), decimal(), d, precision, form, width, flags); Execution Count:1506060 | 1506060 |
2560 | d, precision, form, width, flags); executed: return QLocalePrivate::doubleToString(zero(), plus(), minus(), exponential(), group(), decimal(), d, precision, form, width, flags); Execution Count:1506060 | 1506060 |
2561 | } | - |
2562 | | - |
2563 | QString QLocalePrivate::doubleToString(const QChar _zero, const QChar plus, const QChar minus, | - |
2564 | const QChar exponential, const QChar group, const QChar decimal, | - |
2565 | double d, | - |
2566 | int precision, | - |
2567 | DoubleForm form, | - |
2568 | int width, | - |
2569 | unsigned flags) | - |
2570 | { | - |
2571 | if (precision == -1) evaluated: precision == -1 yes Evaluation Count:1044733 | yes Evaluation Count:461327 |
| 461327-1044733 |
2572 | precision = 6; executed: precision = 6; Execution Count:1044733 | 1044733 |
2573 | if (width == -1) evaluated: width == -1 yes Evaluation Count:455725 | yes Evaluation Count:1050335 |
| 455725-1050335 |
2574 | width = 0; executed: width = 0; Execution Count:455725 | 455725 |
2575 | | - |
2576 | bool negative = false; executed (the execution status of this line is deduced): bool negative = false; | - |
2577 | bool special_number = false; // nan, +/-inf executed (the execution status of this line is deduced): bool special_number = false; | - |
2578 | QString num_str; executed (the execution status of this line is deduced): QString num_str; | - |
2579 | | - |
2580 | // Detect special numbers (nan, +/-inf) | - |
2581 | if (qt_is_inf(d)) { evaluated: qt_is_inf(d) yes Evaluation Count:522 | yes Evaluation Count:1505538 |
| 522-1505538 |
2582 | num_str = QString::fromLatin1("inf"); executed (the execution status of this line is deduced): num_str = QString::fromLatin1("inf"); | - |
2583 | special_number = true; executed (the execution status of this line is deduced): special_number = true; | - |
2584 | negative = d < 0; executed (the execution status of this line is deduced): negative = d < 0; | - |
2585 | } else if (qt_is_nan(d)) { executed: } Execution Count:522 evaluated: qt_is_nan(d) yes Evaluation Count:260 | yes Evaluation Count:1505278 |
| 260-1505278 |
2586 | num_str = QString::fromLatin1("nan"); executed (the execution status of this line is deduced): num_str = QString::fromLatin1("nan"); | - |
2587 | special_number = true; executed (the execution status of this line is deduced): special_number = true; | - |
2588 | } executed: } Execution Count:260 | 260 |
2589 | | - |
2590 | // Handle normal numbers | - |
2591 | if (!special_number) { evaluated: !special_number yes Evaluation Count:1505278 | yes Evaluation Count:782 |
| 782-1505278 |
2592 | int decpt, sign; executed (the execution status of this line is deduced): int decpt, sign; | - |
2593 | QString digits; executed (the execution status of this line is deduced): QString digits; | - |
2594 | | - |
2595 | #ifdef QT_QLOCALE_USES_FCVT | - |
2596 | // NOT thread safe! | - |
2597 | if (form == DFDecimal) { | - |
2598 | digits = QLatin1String(fcvt(d, precision, &decpt, &sign)); | - |
2599 | } else { | - |
2600 | int pr = precision; | - |
2601 | if (form == DFExponent) | - |
2602 | ++pr; | - |
2603 | else if (form == DFSignificantDigits && pr == 0) | - |
2604 | pr = 1; | - |
2605 | digits = QLatin1String(ecvt(d, pr, &decpt, &sign)); | - |
2606 | | - |
2607 | // Chop trailing zeros | - |
2608 | if (digits.length() > 0) { | - |
2609 | int last_nonzero_idx = digits.length() - 1; | - |
2610 | while (last_nonzero_idx > 0 | - |
2611 | && digits.unicode()[last_nonzero_idx] == QLatin1Char('0')) | - |
2612 | --last_nonzero_idx; | - |
2613 | digits.truncate(last_nonzero_idx + 1); | - |
2614 | } | - |
2615 | | - |
2616 | } | - |
2617 | | - |
2618 | #else | - |
2619 | int mode; executed (the execution status of this line is deduced): int mode; | - |
2620 | if (form == DFDecimal) evaluated: form == DFDecimal yes Evaluation Count:1629 | yes Evaluation Count:1503649 |
| 1629-1503649 |
2621 | mode = 3; executed: mode = 3; Execution Count:1629 | 1629 |
2622 | else | - |
2623 | mode = 2; executed: mode = 2; Execution Count:1503649 | 1503649 |
2624 | | - |
2625 | /* This next bit is a bit quirky. In DFExponent form, the precision | - |
2626 | is the number of digits after decpt. So that would suggest using | - |
2627 | mode=3 for qdtoa. But qdtoa behaves strangely when mode=3 and | - |
2628 | precision=0. So we get around this by using mode=2 and reasoning | - |
2629 | that we want precision+1 significant digits, since the decimal | - |
2630 | point in this mode is always after the first digit. */ | - |
2631 | int pr = precision; executed (the execution status of this line is deduced): int pr = precision; | - |
2632 | if (form == DFExponent) evaluated: form == DFExponent yes Evaluation Count:11 | yes Evaluation Count:1505267 |
| 11-1505267 |
2633 | ++pr; executed: ++pr; Execution Count:11 | 11 |
2634 | | - |
2635 | char *rve = 0; executed (the execution status of this line is deduced): char *rve = 0; | - |
2636 | char *buff = 0; executed (the execution status of this line is deduced): char *buff = 0; | - |
2637 | QT_TRY { | - |
2638 | digits = QLatin1String(qdtoa(d, mode, pr, &decpt, &sign, &rve, &buff)); executed (the execution status of this line is deduced): digits = QLatin1String(qdtoa(d, mode, pr, &decpt, &sign, &rve, &buff)); | - |
2639 | } QT_CATCH(...) { executed: } Execution Count:1505278 | 1505278 |
2640 | if (buff != 0) never evaluated: buff != 0 | 0 |
2641 | free(buff); never executed: free(buff); | 0 |
2642 | QT_RETHROW; | 0 |
2643 | } | - |
2644 | if (buff != 0) evaluated: buff != 0 yes Evaluation Count:1463101 | yes Evaluation Count:42177 |
| 42177-1463101 |
2645 | free(buff); executed: free(buff); Execution Count:1463101 | 1463101 |
2646 | #endif // QT_QLOCALE_USES_FCVT | - |
2647 | | - |
2648 | if (_zero.unicode() != '0') { partially evaluated: _zero.unicode() != '0' no Evaluation Count:0 | yes Evaluation Count:1505278 |
| 0-1505278 |
2649 | ushort z = _zero.unicode() - '0'; never executed (the execution status of this line is deduced): ushort z = _zero.unicode() - '0'; | - |
2650 | for (int i = 0; i < digits.length(); ++i) never evaluated: i < digits.length() | 0 |
2651 | reinterpret_cast<ushort *>(digits.data())[i] += z; never executed: reinterpret_cast<ushort *>(digits.data())[i] += z; | 0 |
2652 | } | 0 |
2653 | | - |
2654 | bool always_show_decpt = (flags & Alternate || flags & ForcePoint); evaluated: flags & Alternate yes Evaluation Count:4614 | yes Evaluation Count:1500664 |
partially evaluated: flags & ForcePoint no Evaluation Count:0 | yes Evaluation Count:1500664 |
| 0-1500664 |
2655 | switch (form) { | - |
2656 | case DFExponent: { | - |
2657 | num_str = exponentForm(_zero, decimal, exponential, group, plus, minus, executed (the execution status of this line is deduced): num_str = exponentForm(_zero, decimal, exponential, group, plus, minus, | - |
2658 | digits, decpt, precision, PMDecimalDigits, executed (the execution status of this line is deduced): digits, decpt, precision, PMDecimalDigits, | - |
2659 | always_show_decpt); executed (the execution status of this line is deduced): always_show_decpt); | - |
2660 | break; executed: break; Execution Count:11 | 11 |
2661 | } | - |
2662 | case DFDecimal: { | - |
2663 | num_str = decimalForm(_zero, decimal, group, executed (the execution status of this line is deduced): num_str = decimalForm(_zero, decimal, group, | - |
2664 | digits, decpt, precision, PMDecimalDigits, executed (the execution status of this line is deduced): digits, decpt, precision, PMDecimalDigits, | - |
2665 | always_show_decpt, flags & ThousandsGroup); executed (the execution status of this line is deduced): always_show_decpt, flags & ThousandsGroup); | - |
2666 | break; executed: break; Execution Count:1629 | 1629 |
2667 | } | - |
2668 | case DFSignificantDigits: { | - |
2669 | PrecisionMode mode = (flags & Alternate) ? evaluated: (flags & Alternate) yes Evaluation Count:4610 | yes Evaluation Count:1499028 |
| 4610-1499028 |
2670 | PMSignificantDigits : PMChopTrailingZeros; executed (the execution status of this line is deduced): PMSignificantDigits : PMChopTrailingZeros; | - |
2671 | | - |
2672 | if (decpt != digits.length() && (decpt <= -4 || decpt > precision)) evaluated: decpt != digits.length() yes Evaluation Count:498008 | yes Evaluation Count:1005630 |
evaluated: decpt <= -4 yes Evaluation Count:5205 | yes Evaluation Count:492803 |
evaluated: decpt > precision yes Evaluation Count:63054 | yes Evaluation Count:429749 |
| 5205-1005630 |
2673 | num_str = exponentForm(_zero, decimal, exponential, group, plus, minus, executed: num_str = exponentForm(_zero, decimal, exponential, group, plus, minus, digits, decpt, precision, mode, always_show_decpt); Execution Count:68259 | 68259 |
2674 | digits, decpt, precision, mode, executed: num_str = exponentForm(_zero, decimal, exponential, group, plus, minus, digits, decpt, precision, mode, always_show_decpt); Execution Count:68259 | 68259 |
2675 | always_show_decpt); executed: num_str = exponentForm(_zero, decimal, exponential, group, plus, minus, digits, decpt, precision, mode, always_show_decpt); Execution Count:68259 | 68259 |
2676 | else | - |
2677 | num_str = decimalForm(_zero, decimal, group, executed: num_str = decimalForm(_zero, decimal, group, digits, decpt, precision, mode, always_show_decpt, flags & ThousandsGroup); Execution Count:1435379 | 1435379 |
2678 | digits, decpt, precision, mode, executed: num_str = decimalForm(_zero, decimal, group, digits, decpt, precision, mode, always_show_decpt, flags & ThousandsGroup); Execution Count:1435379 | 1435379 |
2679 | always_show_decpt, flags & ThousandsGroup); executed: num_str = decimalForm(_zero, decimal, group, digits, decpt, precision, mode, always_show_decpt, flags & ThousandsGroup); Execution Count:1435379 | 1435379 |
2680 | break; executed: break; Execution Count:1503638 | 1503638 |
2681 | } | - |
2682 | } | - |
2683 | | - |
2684 | negative = sign != 0 && !isZero(d); evaluated: sign != 0 yes Evaluation Count:474215 | yes Evaluation Count:1031063 |
evaluated: !isZero(d) yes Evaluation Count:474207 | yes Evaluation Count:8 |
| 8-1031063 |
2685 | } executed: } Execution Count:1505278 | 1505278 |
2686 | | - |
2687 | // pad with zeros. LeftAdjusted overrides this flag). Also, we don't | - |
2688 | // pad special numbers | - |
2689 | if (flags & QLocalePrivate::ZeroPadded evaluated: flags & QLocalePrivate::ZeroPadded yes Evaluation Count:4994 | yes Evaluation Count:1501066 |
| 4994-1501066 |
2690 | && !(flags & QLocalePrivate::LeftAdjusted) evaluated: !(flags & QLocalePrivate::LeftAdjusted) yes Evaluation Count:2498 | yes Evaluation Count:2496 |
| 2496-2498 |
2691 | && !special_number) { evaluated: !special_number yes Evaluation Count:2306 | yes Evaluation Count:192 |
| 192-2306 |
2692 | int num_pad_chars = width - num_str.length(); executed (the execution status of this line is deduced): int num_pad_chars = width - num_str.length(); | - |
2693 | // leave space for the sign | - |
2694 | if (negative evaluated: negative yes Evaluation Count:66 | yes Evaluation Count:2240 |
| 66-2240 |
2695 | || flags & QLocalePrivate::AlwaysShowSign evaluated: flags & QLocalePrivate::AlwaysShowSign yes Evaluation Count:1120 | yes Evaluation Count:1120 |
| 1120 |
2696 | || flags & QLocalePrivate::BlankBeforePositive) evaluated: flags & QLocalePrivate::BlankBeforePositive yes Evaluation Count:560 | yes Evaluation Count:560 |
| 560 |
2697 | --num_pad_chars; executed: --num_pad_chars; Execution Count:1746 | 1746 |
2698 | | - |
2699 | for (int i = 0; i < num_pad_chars; ++i) evaluated: i < num_pad_chars yes Evaluation Count:23649 | yes Evaluation Count:2306 |
| 2306-23649 |
2700 | num_str.prepend(_zero); executed: num_str.prepend(_zero); Execution Count:23649 | 23649 |
2701 | } executed: } Execution Count:2306 | 2306 |
2702 | | - |
2703 | // add sign | - |
2704 | if (negative) evaluated: negative yes Evaluation Count:474468 | yes Evaluation Count:1031592 |
| 474468-1031592 |
2705 | num_str.prepend(minus); executed: num_str.prepend(minus); Execution Count:474468 | 474468 |
2706 | else if (flags & QLocalePrivate::AlwaysShowSign) evaluated: flags & QLocalePrivate::AlwaysShowSign yes Evaluation Count:4738 | yes Evaluation Count:1026854 |
| 4738-1026854 |
2707 | num_str.prepend(plus); executed: num_str.prepend(plus); Execution Count:4738 | 4738 |
2708 | else if (flags & QLocalePrivate::BlankBeforePositive) evaluated: flags & QLocalePrivate::BlankBeforePositive yes Evaluation Count:2368 | yes Evaluation Count:1024486 |
| 2368-1024486 |
2709 | num_str.prepend(QLatin1Char(' ')); executed: num_str.prepend(QLatin1Char(' ')); Execution Count:2368 | 2368 |
2710 | | - |
2711 | if (flags & QLocalePrivate::CapitalEorX) evaluated: flags & QLocalePrivate::CapitalEorX yes Evaluation Count:4999 | yes Evaluation Count:1501061 |
| 4999-1501061 |
2712 | num_str = num_str.toUpper(); executed: num_str = num_str.toUpper(); Execution Count:4999 | 4999 |
2713 | | - |
2714 | return num_str; executed: return num_str; Execution Count:1506060 | 1506060 |
2715 | } | - |
2716 | | - |
2717 | QString QLocalePrivate::longLongToString(qlonglong l, int precision, | - |
2718 | int base, int width, | - |
2719 | unsigned flags) const | - |
2720 | { | - |
2721 | return QLocalePrivate::longLongToString(zero(), group(), plus(), minus(), executed: return QLocalePrivate::longLongToString(zero(), group(), plus(), minus(), l, precision, base, width, flags); Execution Count:12184074 | 12184074 |
2722 | l, precision, base, width, flags); executed: return QLocalePrivate::longLongToString(zero(), group(), plus(), minus(), l, precision, base, width, flags); Execution Count:12184074 | 12184074 |
2723 | } | - |
2724 | | - |
2725 | QString QLocalePrivate::longLongToString(const QChar zero, const QChar group, | - |
2726 | const QChar plus, const QChar minus, | - |
2727 | qlonglong l, int precision, | - |
2728 | int base, int width, | - |
2729 | unsigned flags) | - |
2730 | { | - |
2731 | bool precision_not_specified = false; executed (the execution status of this line is deduced): bool precision_not_specified = false; | - |
2732 | if (precision == -1) { evaluated: precision == -1 yes Evaluation Count:12182872 | yes Evaluation Count:69470 |
| 69470-12182872 |
2733 | precision_not_specified = true; executed (the execution status of this line is deduced): precision_not_specified = true; | - |
2734 | precision = 1; executed (the execution status of this line is deduced): precision = 1; | - |
2735 | } executed: } Execution Count:12182872 | 12182872 |
2736 | | - |
2737 | bool negative = l < 0; executed (the execution status of this line is deduced): bool negative = l < 0; | - |
2738 | if (base != 10) { evaluated: base != 10 yes Evaluation Count:2519 | yes Evaluation Count:12249822 |
| 2519-12249822 |
2739 | // these are not supported by sprintf for octal and hex | - |
2740 | flags &= ~AlwaysShowSign; executed (the execution status of this line is deduced): flags &= ~AlwaysShowSign; | - |
2741 | flags &= ~BlankBeforePositive; executed (the execution status of this line is deduced): flags &= ~BlankBeforePositive; | - |
2742 | negative = false; // neither are negative numbers executed (the execution status of this line is deduced): negative = false; | - |
2743 | } executed: } Execution Count:2519 | 2519 |
2744 | | - |
2745 | QString num_str; executed (the execution status of this line is deduced): QString num_str; | - |
2746 | if (base == 10) evaluated: base == 10 yes Evaluation Count:12249824 | yes Evaluation Count:2519 |
| 2519-12249824 |
2747 | num_str = qlltoa(l, base, zero); executed: num_str = qlltoa(l, base, zero); Execution Count:12249823 | 12249823 |
2748 | else | - |
2749 | num_str = qulltoa(l, base, zero); executed: num_str = qulltoa(l, base, zero); Execution Count:2519 | 2519 |
2750 | | - |
2751 | uint cnt_thousand_sep = 0; executed (the execution status of this line is deduced): uint cnt_thousand_sep = 0; | - |
2752 | if (flags & ThousandsGroup && base == 10) { evaluated: flags & ThousandsGroup yes Evaluation Count:1877 | yes Evaluation Count:12250466 |
partially evaluated: base == 10 yes Evaluation Count:1877 | no Evaluation Count:0 |
| 0-12250466 |
2753 | for (int i = num_str.length() - 3; i > 0; i -= 3) { evaluated: i > 0 yes Evaluation Count:743 | yes Evaluation Count:1877 |
| 743-1877 |
2754 | num_str.insert(i, group); executed (the execution status of this line is deduced): num_str.insert(i, group); | - |
2755 | ++cnt_thousand_sep; executed (the execution status of this line is deduced): ++cnt_thousand_sep; | - |
2756 | } executed: } Execution Count:743 | 743 |
2757 | } executed: } Execution Count:1877 | 1877 |
2758 | | - |
2759 | for (int i = num_str.length()/* - cnt_thousand_sep*/; i < precision; ++i) evaluated: i < precision yes Evaluation Count:488427 | yes Evaluation Count:12252345 |
| 488427-12252345 |
2760 | num_str.prepend(base == 10 ? zero : QChar::fromLatin1('0')); executed: num_str.prepend(base == 10 ? zero : QChar::fromLatin1('0')); Execution Count:488427 | 488427 |
2761 | | - |
2762 | if ((flags & Alternate || flags & ShowBase) partially evaluated: flags & Alternate no Evaluation Count:0 | yes Evaluation Count:12252344 |
partially evaluated: flags & ShowBase no Evaluation Count:0 | yes Evaluation Count:12252345 |
| 0-12252345 |
2763 | && base == 8 never evaluated: base == 8 | 0 |
2764 | && (num_str.isEmpty() || num_str[0].unicode() != QLatin1Char('0'))) never evaluated: num_str.isEmpty() never evaluated: num_str[0].unicode() != QLatin1Char('0') | 0 |
2765 | num_str.prepend(QLatin1Char('0')); never executed: num_str.prepend(QLatin1Char('0')); | 0 |
2766 | | - |
2767 | // LeftAdjusted overrides this flag ZeroPadded. sprintf only padds | - |
2768 | // when precision is not specified in the format string | - |
2769 | bool zero_padded = flags & ZeroPadded evaluated: flags & ZeroPadded yes Evaluation Count:17107 | yes Evaluation Count:12235236 |
| 17107-12235236 |
2770 | && !(flags & LeftAdjusted) partially evaluated: !(flags & LeftAdjusted) yes Evaluation Count:17107 | no Evaluation Count:0 |
| 0-17107 |
2771 | && precision_not_specified; partially evaluated: precision_not_specified yes Evaluation Count:17107 | no Evaluation Count:0 |
| 0-17107 |
2772 | | - |
2773 | if (zero_padded) { evaluated: zero_padded yes Evaluation Count:17107 | yes Evaluation Count:12235238 |
| 17107-12235238 |
2774 | int num_pad_chars = width - num_str.length(); executed (the execution status of this line is deduced): int num_pad_chars = width - num_str.length(); | - |
2775 | | - |
2776 | // leave space for the sign | - |
2777 | if (negative evaluated: negative yes Evaluation Count:18 | yes Evaluation Count:17089 |
| 18-17089 |
2778 | || flags & AlwaysShowSign partially evaluated: flags & AlwaysShowSign no Evaluation Count:0 | yes Evaluation Count:17089 |
| 0-17089 |
2779 | || flags & BlankBeforePositive) partially evaluated: flags & BlankBeforePositive no Evaluation Count:0 | yes Evaluation Count:17089 |
| 0-17089 |
2780 | --num_pad_chars; executed: --num_pad_chars; Execution Count:18 | 18 |
2781 | | - |
2782 | // leave space for optional '0x' in hex form | - |
2783 | if (base == 16 && (flags & Alternate || flags & ShowBase)) partially evaluated: base == 16 no Evaluation Count:0 | yes Evaluation Count:17107 |
never evaluated: flags & Alternate never evaluated: flags & ShowBase | 0-17107 |
2784 | num_pad_chars -= 2; never executed: num_pad_chars -= 2; | 0 |
2785 | // leave space for optional '0b' in binary form | - |
2786 | else if (base == 2 && (flags & Alternate || flags & ShowBase)) partially evaluated: base == 2 no Evaluation Count:0 | yes Evaluation Count:17107 |
never evaluated: flags & Alternate never evaluated: flags & ShowBase | 0-17107 |
2787 | num_pad_chars -= 2; never executed: num_pad_chars -= 2; | 0 |
2788 | | - |
2789 | for (int i = 0; i < num_pad_chars; ++i) evaluated: i < num_pad_chars yes Evaluation Count:8227 | yes Evaluation Count:17107 |
| 8227-17107 |
2790 | num_str.prepend(base == 10 ? zero : QChar::fromLatin1('0')); executed: num_str.prepend(base == 10 ? zero : QChar::fromLatin1('0')); Execution Count:8227 | 8227 |
2791 | } executed: } Execution Count:17107 | 17107 |
2792 | | - |
2793 | if (flags & CapitalEorX) partially evaluated: flags & CapitalEorX no Evaluation Count:0 | yes Evaluation Count:12252345 |
| 0-12252345 |
2794 | num_str = num_str.toUpper(); never executed: num_str = num_str.toUpper(); | 0 |
2795 | | - |
2796 | if (base == 16 && (flags & Alternate || flags & ShowBase)) evaluated: base == 16 yes Evaluation Count:2365 | yes Evaluation Count:12249979 |
partially evaluated: flags & Alternate no Evaluation Count:0 | yes Evaluation Count:2365 |
partially evaluated: flags & ShowBase no Evaluation Count:0 | yes Evaluation Count:2365 |
| 0-12249979 |
2797 | num_str.prepend(QLatin1String(flags & UppercaseBase ? "0X" : "0x")); never executed: num_str.prepend(QLatin1String(flags & UppercaseBase ? "0X" : "0x")); | 0 |
2798 | if (base == 2 && (flags & Alternate || flags & ShowBase)) partially evaluated: base == 2 no Evaluation Count:0 | yes Evaluation Count:12252344 |
never evaluated: flags & Alternate never evaluated: flags & ShowBase | 0-12252344 |
2799 | num_str.prepend(QLatin1String(flags & UppercaseBase ? "0B" : "0b")); never executed: num_str.prepend(QLatin1String(flags & UppercaseBase ? "0B" : "0b")); | 0 |
2800 | | - |
2801 | // add sign | - |
2802 | if (negative) evaluated: negative yes Evaluation Count:40418 | yes Evaluation Count:12211926 |
| 40418-12211926 |
2803 | num_str.prepend(minus); executed: num_str.prepend(minus); Execution Count:40418 | 40418 |
2804 | else if (flags & AlwaysShowSign) evaluated: flags & AlwaysShowSign yes Evaluation Count:63065 | yes Evaluation Count:12148861 |
| 63065-12148861 |
2805 | num_str.prepend(plus); executed: num_str.prepend(plus); Execution Count:63065 | 63065 |
2806 | else if (flags & BlankBeforePositive) partially evaluated: flags & BlankBeforePositive no Evaluation Count:0 | yes Evaluation Count:12148860 |
| 0-12148860 |
2807 | num_str.prepend(QLatin1Char(' ')); never executed: num_str.prepend(QLatin1Char(' ')); | 0 |
2808 | | - |
2809 | return num_str; executed: return num_str; Execution Count:12252343 | 12252343 |
2810 | } | - |
2811 | | - |
2812 | QString QLocalePrivate::unsLongLongToString(qulonglong l, int precision, | - |
2813 | int base, int width, | - |
2814 | unsigned flags) const | - |
2815 | { | - |
2816 | return QLocalePrivate::unsLongLongToString(zero(), group(), plus(), executed: return QLocalePrivate::unsLongLongToString(zero(), group(), plus(), l, precision, base, width, flags); Execution Count:38019 | 38019 |
2817 | l, precision, base, width, flags); executed: return QLocalePrivate::unsLongLongToString(zero(), group(), plus(), l, precision, base, width, flags); Execution Count:38019 | 38019 |
2818 | } | - |
2819 | | - |
2820 | QString QLocalePrivate::unsLongLongToString(const QChar zero, const QChar group, | - |
2821 | const QChar plus, | - |
2822 | qulonglong l, int precision, | - |
2823 | int base, int width, | - |
2824 | unsigned flags) | - |
2825 | { | - |
2826 | bool precision_not_specified = false; executed (the execution status of this line is deduced): bool precision_not_specified = false; | - |
2827 | if (precision == -1) { partially evaluated: precision == -1 yes Evaluation Count:38018 | no Evaluation Count:0 |
| 0-38018 |
2828 | precision_not_specified = true; executed (the execution status of this line is deduced): precision_not_specified = true; | - |
2829 | precision = 1; executed (the execution status of this line is deduced): precision = 1; | - |
2830 | } executed: } Execution Count:38018 | 38018 |
2831 | | - |
2832 | QString num_str = qulltoa(l, base, zero); executed (the execution status of this line is deduced): QString num_str = qulltoa(l, base, zero); | - |
2833 | | - |
2834 | uint cnt_thousand_sep = 0; executed (the execution status of this line is deduced): uint cnt_thousand_sep = 0; | - |
2835 | if (flags & ThousandsGroup && base == 10) { evaluated: flags & ThousandsGroup yes Evaluation Count:454 | yes Evaluation Count:37563 |
partially evaluated: base == 10 yes Evaluation Count:454 | no Evaluation Count:0 |
| 0-37563 |
2836 | for (int i = num_str.length() - 3; i > 0; i -=3) { evaluated: i > 0 yes Evaluation Count:8 | yes Evaluation Count:454 |
| 8-454 |
2837 | num_str.insert(i, group); executed (the execution status of this line is deduced): num_str.insert(i, group); | - |
2838 | ++cnt_thousand_sep; executed (the execution status of this line is deduced): ++cnt_thousand_sep; | - |
2839 | } executed: } Execution Count:8 | 8 |
2840 | } executed: } Execution Count:454 | 454 |
2841 | | - |
2842 | for (int i = num_str.length()/* - cnt_thousand_sep*/; i < precision; ++i) evaluated: i < precision yes Evaluation Count:13279 | yes Evaluation Count:38017 |
| 13279-38017 |
2843 | num_str.prepend(base == 10 ? zero : QChar::fromLatin1('0')); executed: num_str.prepend(base == 10 ? zero : QChar::fromLatin1('0')); Execution Count:13279 | 13279 |
2844 | | - |
2845 | if ((flags & Alternate || flags & ShowBase) evaluated: flags & Alternate yes Evaluation Count:35 | yes Evaluation Count:37982 |
evaluated: flags & ShowBase yes Evaluation Count:94 | yes Evaluation Count:37888 |
| 35-37982 |
2846 | && base == 8 evaluated: base == 8 yes Evaluation Count:2 | yes Evaluation Count:127 |
| 2-127 |
2847 | && (num_str.isEmpty() || num_str[0].unicode() != QLatin1Char('0'))) partially evaluated: num_str.isEmpty() no Evaluation Count:0 | yes Evaluation Count:2 |
evaluated: num_str[0].unicode() != QLatin1Char('0') yes Evaluation Count:1 | yes Evaluation Count:1 |
| 0-2 |
2848 | num_str.prepend(QLatin1Char('0')); executed: num_str.prepend(QLatin1Char('0')); Execution Count:1 | 1 |
2849 | | - |
2850 | // LeftAdjusted overrides this flag ZeroPadded. sprintf only padds | - |
2851 | // when precision is not specified in the format string | - |
2852 | bool zero_padded = flags & ZeroPadded evaluated: flags & ZeroPadded yes Evaluation Count:2040 | yes Evaluation Count:35977 |
| 2040-35977 |
2853 | && !(flags & LeftAdjusted) partially evaluated: !(flags & LeftAdjusted) yes Evaluation Count:2040 | no Evaluation Count:0 |
| 0-2040 |
2854 | && precision_not_specified; partially evaluated: precision_not_specified yes Evaluation Count:2040 | no Evaluation Count:0 |
| 0-2040 |
2855 | | - |
2856 | if (zero_padded) { evaluated: zero_padded yes Evaluation Count:2040 | yes Evaluation Count:35976 |
| 2040-35976 |
2857 | int num_pad_chars = width - num_str.length(); executed (the execution status of this line is deduced): int num_pad_chars = width - num_str.length(); | - |
2858 | | - |
2859 | // leave space for optional '0x' in hex form | - |
2860 | if (base == 16 && flags & Alternate) partially evaluated: base == 16 yes Evaluation Count:2040 | no Evaluation Count:0 |
partially evaluated: flags & Alternate no Evaluation Count:0 | yes Evaluation Count:2040 |
| 0-2040 |
2861 | num_pad_chars -= 2; never executed: num_pad_chars -= 2; | 0 |
2862 | // leave space for optional '0b' in binary form | - |
2863 | else if (base == 2 && flags & Alternate) partially evaluated: base == 2 no Evaluation Count:0 | yes Evaluation Count:2040 |
never evaluated: flags & Alternate | 0-2040 |
2864 | num_pad_chars -= 2; never executed: num_pad_chars -= 2; | 0 |
2865 | | - |
2866 | for (int i = 0; i < num_pad_chars; ++i) evaluated: i < num_pad_chars yes Evaluation Count:604 | yes Evaluation Count:2040 |
| 604-2040 |
2867 | num_str.prepend(base == 10 ? zero : QChar::fromLatin1('0')); executed: num_str.prepend(base == 10 ? zero : QChar::fromLatin1('0')); Execution Count:604 | 604 |
2868 | } executed: } Execution Count:2040 | 2040 |
2869 | | - |
2870 | if (flags & CapitalEorX) evaluated: flags & CapitalEorX yes Evaluation Count:9 | yes Evaluation Count:38007 |
| 9-38007 |
2871 | num_str = num_str.toUpper(); executed: num_str = num_str.toUpper(); Execution Count:9 | 9 |
2872 | | - |
2873 | if (base == 16 && (flags & Alternate || flags & ShowBase)) evaluated: base == 16 yes Evaluation Count:15293 | yes Evaluation Count:22723 |
evaluated: flags & Alternate yes Evaluation Count:35 | yes Evaluation Count:15258 |
evaluated: flags & ShowBase yes Evaluation Count:77 | yes Evaluation Count:15181 |
| 35-22723 |
2874 | num_str.prepend(QLatin1String(flags & UppercaseBase ? "0X" : "0x")); executed: num_str.prepend(QLatin1String(flags & UppercaseBase ? "0X" : "0x")); Execution Count:112 | 112 |
2875 | else if (base == 2 && (flags & Alternate || flags & ShowBase)) evaluated: base == 2 yes Evaluation Count:15 | yes Evaluation Count:37889 |
partially evaluated: flags & Alternate no Evaluation Count:0 | yes Evaluation Count:15 |
evaluated: flags & ShowBase yes Evaluation Count:14 | yes Evaluation Count:1 |
| 0-37889 |
2876 | num_str.prepend(QLatin1String(flags & UppercaseBase ? "0B" : "0b")); executed: num_str.prepend(QLatin1String(flags & UppercaseBase ? "0B" : "0b")); Execution Count:14 | 14 |
2877 | | - |
2878 | // add sign | - |
2879 | if (flags & AlwaysShowSign) evaluated: flags & AlwaysShowSign yes Evaluation Count:3 | yes Evaluation Count:38013 |
| 3-38013 |
2880 | num_str.prepend(plus); executed: num_str.prepend(plus); Execution Count:3 | 3 |
2881 | else if (flags & BlankBeforePositive) partially evaluated: flags & BlankBeforePositive no Evaluation Count:0 | yes Evaluation Count:38011 |
| 0-38011 |
2882 | num_str.prepend(QLatin1Char(' ')); never executed: num_str.prepend(QLatin1Char(' ')); | 0 |
2883 | | - |
2884 | return num_str; executed: return num_str; Execution Count:38014 | 38014 |
2885 | } | - |
2886 | | - |
2887 | /* | - |
2888 | Converts a number in locale to its representation in the C locale. | - |
2889 | Only has to guarantee that a string that is a correct representation of | - |
2890 | a number will be converted. If junk is passed in, junk will be passed | - |
2891 | out and the error will be detected during the actual conversion to a | - |
2892 | number. We can't detect junk here, since we don't even know the base | - |
2893 | of the number. | - |
2894 | */ | - |
2895 | bool QLocalePrivate::numberToCLocale(const QString &num, | - |
2896 | GroupSeparatorMode group_sep_mode, | - |
2897 | CharBuff *result) const | - |
2898 | { | - |
2899 | const QChar *uc = num.unicode(); executed (the execution status of this line is deduced): const QChar *uc = num.unicode(); | - |
2900 | int l = num.length(); executed (the execution status of this line is deduced): int l = num.length(); | - |
2901 | int idx = 0; executed (the execution status of this line is deduced): int idx = 0; | - |
2902 | | - |
2903 | // Skip whitespace | - |
2904 | while (idx < l && uc[idx].isSpace()) evaluated: idx < l yes Evaluation Count:103045 | yes Evaluation Count:11432 |
evaluated: uc[idx].isSpace() yes Evaluation Count:151 | yes Evaluation Count:102894 |
| 151-103045 |
2905 | ++idx; executed: ++idx; Execution Count:151 | 151 |
2906 | if (idx == l) evaluated: idx == l yes Evaluation Count:11432 | yes Evaluation Count:102894 |
| 11432-102894 |
2907 | return false; executed: return false; Execution Count:11432 | 11432 |
2908 | | - |
2909 | while (idx < l) { evaluated: idx < l yes Evaluation Count:263388 | yes Evaluation Count:102201 |
| 102201-263388 |
2910 | const QChar in = uc[idx]; executed (the execution status of this line is deduced): const QChar in = uc[idx]; | - |
2911 | | - |
2912 | char out = digitToCLocale(in); executed (the execution status of this line is deduced): char out = digitToCLocale(in); | - |
2913 | if (out == 0) { evaluated: out == 0 yes Evaluation Count:111212 | yes Evaluation Count:152176 |
| 111212-152176 |
2914 | if (in == list()) partially evaluated: in == list() no Evaluation Count:0 | yes Evaluation Count:111212 |
| 0-111212 |
2915 | out = ';'; never executed: out = ';'; | 0 |
2916 | else if (in == percent()) evaluated: in == percent() yes Evaluation Count:4 | yes Evaluation Count:111208 |
| 4-111208 |
2917 | out = '%'; executed: out = '%'; Execution Count:4 | 4 |
2918 | // for handling base-x numbers | - |
2919 | else if (in.unicode() >= 'A' && in.unicode() <= 'Z') evaluated: in.unicode() >= 'A' yes Evaluation Count:110530 | yes Evaluation Count:678 |
evaluated: in.unicode() <= 'Z' yes Evaluation Count:97711 | yes Evaluation Count:12819 |
| 678-110530 |
2920 | out = in.toLower().toLatin1(); executed: out = in.toLower().toLatin1(); Execution Count:97711 | 97711 |
2921 | else if (in.unicode() >= 'a' && in.unicode() <= 'z') evaluated: in.unicode() >= 'a' yes Evaluation Count:12809 | yes Evaluation Count:688 |
evaluated: in.unicode() <= 'z' yes Evaluation Count:12804 | yes Evaluation Count:5 |
| 5-12809 |
2922 | out = in.toLatin1(); executed: out = in.toLatin1(); Execution Count:12804 | 12804 |
2923 | else | - |
2924 | break; executed: break; Execution Count:693 | 693 |
2925 | } | - |
2926 | | - |
2927 | result->append(out); executed (the execution status of this line is deduced): result->append(out); | - |
2928 | | - |
2929 | ++idx; executed (the execution status of this line is deduced): ++idx; | - |
2930 | } executed: } Execution Count:262695 | 262695 |
2931 | | - |
2932 | // Check trailing whitespace | - |
2933 | for (; idx < l; ++idx) { evaluated: idx < l yes Evaluation Count:773 | yes Evaluation Count:102261 |
| 773-102261 |
2934 | if (!uc[idx].isSpace()) evaluated: !uc[idx].isSpace() yes Evaluation Count:633 | yes Evaluation Count:140 |
| 140-633 |
2935 | return false; executed: return false; Execution Count:633 | 633 |
2936 | } executed: } Execution Count:140 | 140 |
2937 | | - |
2938 | result->append('\0'); executed (the execution status of this line is deduced): result->append('\0'); | - |
2939 | | - |
2940 | // Check separators | - |
2941 | if (group_sep_mode == ParseGroupSeparators evaluated: group_sep_mode == ParseGroupSeparators yes Evaluation Count:13445 | yes Evaluation Count:88816 |
| 13445-88816 |
2942 | && !removeGroupSeparators(result)) evaluated: !removeGroupSeparators(result) yes Evaluation Count:72 | yes Evaluation Count:13373 |
| 72-13373 |
2943 | return false; executed: return false; Execution Count:72 | 72 |
2944 | | - |
2945 | | - |
2946 | return true; executed: return true; Execution Count:102189 | 102189 |
2947 | } | - |
2948 | | - |
2949 | bool QLocalePrivate::validateChars(const QString &str, NumberMode numMode, QByteArray *buff, | - |
2950 | int decDigits) const | - |
2951 | { | - |
2952 | buff->clear(); executed (the execution status of this line is deduced): buff->clear(); | - |
2953 | buff->reserve(str.length()); executed (the execution status of this line is deduced): buff->reserve(str.length()); | - |
2954 | | - |
2955 | const bool scientific = numMode == DoubleScientificMode; executed (the execution status of this line is deduced): const bool scientific = numMode == DoubleScientificMode; | - |
2956 | bool lastWasE = false; executed (the execution status of this line is deduced): bool lastWasE = false; | - |
2957 | bool lastWasDigit = false; executed (the execution status of this line is deduced): bool lastWasDigit = false; | - |
2958 | int eCnt = 0; executed (the execution status of this line is deduced): int eCnt = 0; | - |
2959 | int decPointCnt = 0; executed (the execution status of this line is deduced): int decPointCnt = 0; | - |
2960 | bool dec = false; executed (the execution status of this line is deduced): bool dec = false; | - |
2961 | int decDigitCnt = 0; executed (the execution status of this line is deduced): int decDigitCnt = 0; | - |
2962 | | - |
2963 | for (int i = 0; i < str.length(); ++i) { evaluated: i < str.length() yes Evaluation Count:1596 | yes Evaluation Count:382 |
| 382-1596 |
2964 | char c = digitToCLocale(str.at(i)); executed (the execution status of this line is deduced): char c = digitToCLocale(str.at(i)); | - |
2965 | | - |
2966 | if (c >= '0' && c <= '9') { evaluated: c >= '0' yes Evaluation Count:1304 | yes Evaluation Count:292 |
evaluated: c <= '9' yes Evaluation Count:1200 | yes Evaluation Count:104 |
| 104-1304 |
2967 | if (numMode != IntegerMode) { evaluated: numMode != IntegerMode yes Evaluation Count:695 | yes Evaluation Count:505 |
| 505-695 |
2968 | // If a double has too many digits after decpt, it shall be Invalid. | - |
2969 | if (dec && decDigits != -1 && decDigits < ++decDigitCnt) evaluated: dec yes Evaluation Count:100 | yes Evaluation Count:595 |
partially evaluated: decDigits != -1 yes Evaluation Count:100 | no Evaluation Count:0 |
evaluated: decDigits < ++decDigitCnt yes Evaluation Count:12 | yes Evaluation Count:88 |
| 0-595 |
2970 | return false; executed: return false; Execution Count:12 | 12 |
2971 | } executed: } Execution Count:683 | 683 |
2972 | lastWasDigit = true; executed (the execution status of this line is deduced): lastWasDigit = true; | - |
2973 | } else { executed: } Execution Count:1188 | 1188 |
2974 | switch (c) { | - |
2975 | case '.': | - |
2976 | if (numMode == IntegerMode) { evaluated: numMode == IntegerMode yes Evaluation Count:6 | yes Evaluation Count:62 |
| 6-62 |
2977 | // If an integer has a decimal point, it shall be Invalid. | - |
2978 | return false; executed: return false; Execution Count:6 | 6 |
2979 | } else { | - |
2980 | // If a double has more than one decimal point, it shall be Invalid. | - |
2981 | if (++decPointCnt > 1) partially evaluated: ++decPointCnt > 1 no Evaluation Count:0 | yes Evaluation Count:62 |
| 0-62 |
2982 | return false; never executed: return false; | 0 |
2983 | #if 0 | - |
2984 | // If a double with no decimal digits has a decimal point, it shall be | - |
2985 | // Invalid. | - |
2986 | if (decDigits == 0) | - |
2987 | return false; | - |
2988 | #endif // On second thoughts, it shall be Valid. | - |
2989 | | - |
2990 | dec = true; executed (the execution status of this line is deduced): dec = true; | - |
2991 | } executed: } Execution Count:62 | 62 |
2992 | break; executed: break; Execution Count:62 | 62 |
2993 | | - |
2994 | case '+': | - |
2995 | case '-': | - |
2996 | if (scientific) { evaluated: scientific yes Evaluation Count:56 | yes Evaluation Count:108 |
| 56-108 |
2997 | // If a scientific has a sign that's not at the beginning or after | - |
2998 | // an 'e', it shall be Invalid. | - |
2999 | if (i != 0 && !lastWasE) evaluated: i != 0 yes Evaluation Count:42 | yes Evaluation Count:14 |
partially evaluated: !lastWasE no Evaluation Count:0 | yes Evaluation Count:42 |
| 0-42 |
3000 | return false; never executed: return false; | 0 |
3001 | } else { executed: } Execution Count:56 | 56 |
3002 | // If a non-scientific has a sign that's not at the beginning, | - |
3003 | // it shall be Invalid. | - |
3004 | if (i != 0) evaluated: i != 0 yes Evaluation Count:4 | yes Evaluation Count:104 |
| 4-104 |
3005 | return false; executed: return false; Execution Count:4 | 4 |
3006 | } executed: } Execution Count:104 | 104 |
3007 | break; executed: break; Execution Count:160 | 160 |
3008 | | - |
3009 | case ',': | - |
3010 | //it can only be placed after a digit which is before the decimal point | - |
3011 | if (!lastWasDigit || decPointCnt > 0) evaluated: !lastWasDigit yes Evaluation Count:2 | yes Evaluation Count:13 |
partially evaluated: decPointCnt > 0 no Evaluation Count:0 | yes Evaluation Count:13 |
| 0-13 |
3012 | return false; executed: return false; Execution Count:2 | 2 |
3013 | break; executed: break; Execution Count:13 | 13 |
3014 | | - |
3015 | case 'e': | - |
3016 | if (scientific) { evaluated: scientific yes Evaluation Count:52 | yes Evaluation Count:52 |
| 52 |
3017 | // If a scientific has more than one 'e', it shall be Invalid. | - |
3018 | if (++eCnt > 1) partially evaluated: ++eCnt > 1 no Evaluation Count:0 | yes Evaluation Count:52 |
| 0-52 |
3019 | return false; never executed: return false; | 0 |
3020 | dec = false; executed (the execution status of this line is deduced): dec = false; | - |
3021 | } else { executed: } Execution Count:52 | 52 |
3022 | // If a non-scientific has an 'e', it shall be Invalid. | - |
3023 | return false; executed: return false; Execution Count:52 | 52 |
3024 | } | - |
3025 | break; executed: break; Execution Count:52 | 52 |
3026 | | - |
3027 | default: | - |
3028 | // If it's not a valid digit, it shall be Invalid. | - |
3029 | return false; executed: return false; Execution Count:45 | 45 |
3030 | } | - |
3031 | lastWasDigit = false; executed (the execution status of this line is deduced): lastWasDigit = false; | - |
3032 | } executed: } Execution Count:287 | 287 |
3033 | | - |
3034 | lastWasE = c == 'e'; executed (the execution status of this line is deduced): lastWasE = c == 'e'; | - |
3035 | if (c != ',') evaluated: c != ',' yes Evaluation Count:1462 | yes Evaluation Count:13 |
| 13-1462 |
3036 | buff->append(c); executed: buff->append(c); Execution Count:1462 | 1462 |
3037 | } executed: } Execution Count:1475 | 1475 |
3038 | | - |
3039 | return true; executed: return true; Execution Count:382 | 382 |
3040 | } | - |
3041 | | - |
3042 | double QLocalePrivate::stringToDouble(const QString &number, bool *ok, | - |
3043 | GroupSeparatorMode group_sep_mode) const | - |
3044 | { | - |
3045 | CharBuff buff; executed (the execution status of this line is deduced): CharBuff buff; | - |
3046 | if (!numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, evaluated: !numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, group_sep_mode, &buff) yes Evaluation Count:93 | yes Evaluation Count:3615 |
| 93-3615 |
3047 | group_sep_mode, &buff)) { evaluated: !numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, group_sep_mode, &buff) yes Evaluation Count:93 | yes Evaluation Count:3615 |
| 93-3615 |
3048 | if (ok != 0) partially evaluated: ok != 0 yes Evaluation Count:93 | no Evaluation Count:0 |
| 0-93 |
3049 | *ok = false; executed: *ok = false; Execution Count:93 | 93 |
3050 | return 0.0; executed: return 0.0; Execution Count:93 | 93 |
3051 | } | - |
3052 | return bytearrayToDouble(buff.constData(), ok); executed: return bytearrayToDouble(buff.constData(), ok); Execution Count:3615 | 3615 |
3053 | } | - |
3054 | | - |
3055 | qlonglong QLocalePrivate::stringToLongLong(const QString &number, int base, | - |
3056 | bool *ok, GroupSeparatorMode group_sep_mode) const | - |
3057 | { | - |
3058 | CharBuff buff; executed (the execution status of this line is deduced): CharBuff buff; | - |
3059 | if (!numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, evaluated: !numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, group_sep_mode, &buff) yes Evaluation Count:11428 | yes Evaluation Count:74537 |
| 11428-74537 |
3060 | group_sep_mode, &buff)) { evaluated: !numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, group_sep_mode, &buff) yes Evaluation Count:11428 | yes Evaluation Count:74537 |
| 11428-74537 |
3061 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:11407 | yes Evaluation Count:21 |
| 21-11407 |
3062 | *ok = false; executed: *ok = false; Execution Count:11407 | 11407 |
3063 | return 0; executed: return 0; Execution Count:11428 | 11428 |
3064 | } | - |
3065 | | - |
3066 | return bytearrayToLongLong(buff.constData(), base, ok); executed: return bytearrayToLongLong(buff.constData(), base, ok); Execution Count:74536 | 74536 |
3067 | } | - |
3068 | | - |
3069 | qulonglong QLocalePrivate::stringToUnsLongLong(const QString &number, int base, | - |
3070 | bool *ok, GroupSeparatorMode group_sep_mode) const | - |
3071 | { | - |
3072 | CharBuff buff; executed (the execution status of this line is deduced): CharBuff buff; | - |
3073 | if (!numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, evaluated: !numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, group_sep_mode, &buff) yes Evaluation Count:616 | yes Evaluation Count:24038 |
| 616-24038 |
3074 | group_sep_mode, &buff)) { evaluated: !numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number, group_sep_mode, &buff) yes Evaluation Count:616 | yes Evaluation Count:24038 |
| 616-24038 |
3075 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:612 | yes Evaluation Count:4 |
| 4-612 |
3076 | *ok = false; executed: *ok = false; Execution Count:612 | 612 |
3077 | return 0; executed: return 0; Execution Count:616 | 616 |
3078 | } | - |
3079 | | - |
3080 | return bytearrayToUnsLongLong(buff.constData(), base, ok); executed: return bytearrayToUnsLongLong(buff.constData(), base, ok); Execution Count:24038 | 24038 |
3081 | } | - |
3082 | | - |
3083 | | - |
3084 | double QLocalePrivate::bytearrayToDouble(const char *num, bool *ok, bool *overflow) | - |
3085 | { | - |
3086 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:3177 | yes Evaluation Count:990 |
| 990-3177 |
3087 | *ok = true; executed: *ok = true; Execution Count:3177 | 3177 |
3088 | if (overflow != 0) evaluated: overflow != 0 yes Evaluation Count:157 | yes Evaluation Count:4010 |
| 157-4010 |
3089 | *overflow = false; executed: *overflow = false; Execution Count:157 | 157 |
3090 | | - |
3091 | if (*num == '\0') { partially evaluated: *num == '\0' no Evaluation Count:0 | yes Evaluation Count:4167 |
| 0-4167 |
3092 | if (ok != 0) | 0 |
3093 | *ok = false; never executed: *ok = false; | 0 |
3094 | return 0.0; never executed: return 0.0; | 0 |
3095 | } | - |
3096 | | - |
3097 | if (qstrcmp(num, "nan") == 0) evaluated: qstrcmp(num, "nan") == 0 yes Evaluation Count:7 | yes Evaluation Count:4160 |
| 7-4160 |
3098 | return qt_snan(); executed: return qt_snan(); Execution Count:7 | 7 |
3099 | | - |
3100 | if (qstrcmp(num, "+inf") == 0 || qstrcmp(num, "inf") == 0) evaluated: qstrcmp(num, "+inf") == 0 yes Evaluation Count:3 | yes Evaluation Count:4157 |
evaluated: qstrcmp(num, "inf") == 0 yes Evaluation Count:6 | yes Evaluation Count:4151 |
| 3-4157 |
3101 | return qt_inf(); executed: return qt_inf(); Execution Count:9 | 9 |
3102 | | - |
3103 | if (qstrcmp(num, "-inf") == 0) evaluated: qstrcmp(num, "-inf") == 0 yes Evaluation Count:2 | yes Evaluation Count:4149 |
| 2-4149 |
3104 | return -qt_inf(); executed: return -qt_inf(); Execution Count:2 | 2 |
3105 | | - |
3106 | bool _ok; executed (the execution status of this line is deduced): bool _ok; | - |
3107 | const char *endptr; executed (the execution status of this line is deduced): const char *endptr; | - |
3108 | double d = qstrtod(num, &endptr, &_ok); executed (the execution status of this line is deduced): double d = qstrtod(num, &endptr, &_ok); | - |
3109 | | - |
3110 | if (!_ok) { evaluated: !_ok yes Evaluation Count:4 | yes Evaluation Count:4145 |
| 4-4145 |
3111 | // the only way strtod can fail with *endptr != '\0' on a non-empty | - |
3112 | // input string is overflow | - |
3113 | if (ok != 0) partially evaluated: ok != 0 yes Evaluation Count:4 | no Evaluation Count:0 |
| 0-4 |
3114 | *ok = false; executed: *ok = false; Execution Count:4 | 4 |
3115 | if (overflow != 0) partially evaluated: overflow != 0 no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
3116 | *overflow = *endptr != '\0'; never executed: *overflow = *endptr != '\0'; | 0 |
3117 | return 0.0; executed: return 0.0; Execution Count:4 | 4 |
3118 | } | - |
3119 | | - |
3120 | if (*endptr != '\0') { evaluated: *endptr != '\0' yes Evaluation Count:305 | yes Evaluation Count:3840 |
| 305-3840 |
3121 | // we stopped at a non-digit character after converting some digits | - |
3122 | if (ok != 0) partially evaluated: ok != 0 yes Evaluation Count:305 | no Evaluation Count:0 |
| 0-305 |
3123 | *ok = false; executed: *ok = false; Execution Count:305 | 305 |
3124 | if (overflow != 0) evaluated: overflow != 0 yes Evaluation Count:48 | yes Evaluation Count:257 |
| 48-257 |
3125 | *overflow = false; executed: *overflow = false; Execution Count:48 | 48 |
3126 | return 0.0; executed: return 0.0; Execution Count:305 | 305 |
3127 | } | - |
3128 | | - |
3129 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:2850 | yes Evaluation Count:990 |
| 990-2850 |
3130 | *ok = true; executed: *ok = true; Execution Count:2850 | 2850 |
3131 | if (overflow != 0) evaluated: overflow != 0 yes Evaluation Count:109 | yes Evaluation Count:3731 |
| 109-3731 |
3132 | *overflow = false; executed: *overflow = false; Execution Count:109 | 109 |
3133 | return d; executed: return d; Execution Count:3840 | 3840 |
3134 | } | - |
3135 | | - |
3136 | qlonglong QLocalePrivate::bytearrayToLongLong(const char *num, int base, bool *ok, bool *overflow) | - |
3137 | { | - |
3138 | bool _ok; executed (the execution status of this line is deduced): bool _ok; | - |
3139 | const char *endptr; executed (the execution status of this line is deduced): const char *endptr; | - |
3140 | | - |
3141 | if (*num == '\0') { evaluated: *num == '\0' yes Evaluation Count:497 | yes Evaluation Count:254823 |
| 497-254823 |
3142 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:5 | yes Evaluation Count:492 |
| 5-492 |
3143 | *ok = false; executed: *ok = false; Execution Count:5 | 5 |
3144 | if (overflow != 0) evaluated: overflow != 0 yes Evaluation Count:4 | yes Evaluation Count:493 |
| 4-493 |
3145 | *overflow = false; executed: *overflow = false; Execution Count:4 | 4 |
3146 | return 0; executed: return 0; Execution Count:497 | 497 |
3147 | } | - |
3148 | | - |
3149 | qlonglong l = qstrtoll(num, &endptr, base, &_ok); executed (the execution status of this line is deduced): qlonglong l = qstrtoll(num, &endptr, base, &_ok); | - |
3150 | | - |
3151 | if (!_ok) { evaluated: !_ok yes Evaluation Count:148 | yes Evaluation Count:254673 |
| 148-254673 |
3152 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:127 | yes Evaluation Count:21 |
| 21-127 |
3153 | *ok = false; executed: *ok = false; Execution Count:127 | 127 |
3154 | if (overflow != 0) { evaluated: overflow != 0 yes Evaluation Count:1 | yes Evaluation Count:147 |
| 1-147 |
3155 | // the only way qstrtoll can fail with *endptr != '\0' on a non-empty | - |
3156 | // input string is overflow | - |
3157 | *overflow = *endptr != '\0'; executed (the execution status of this line is deduced): *overflow = *endptr != '\0'; | - |
3158 | } executed: } Execution Count:1 | 1 |
3159 | return 0; executed: return 0; Execution Count:148 | 148 |
3160 | } | - |
3161 | | - |
3162 | if (*endptr != '\0') { evaluated: *endptr != '\0' yes Evaluation Count:48 | yes Evaluation Count:254625 |
| 48-254625 |
3163 | // we stopped at a non-digit character after converting some digits | - |
3164 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:41 | yes Evaluation Count:7 |
| 7-41 |
3165 | *ok = false; executed: *ok = false; Execution Count:41 | 41 |
3166 | if (overflow != 0) partially evaluated: overflow != 0 no Evaluation Count:0 | yes Evaluation Count:48 |
| 0-48 |
3167 | *overflow = false; never executed: *overflow = false; | 0 |
3168 | return 0; executed: return 0; Execution Count:48 | 48 |
3169 | } | - |
3170 | | - |
3171 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:185671 | yes Evaluation Count:68954 |
| 68954-185671 |
3172 | *ok = true; executed: *ok = true; Execution Count:185671 | 185671 |
3173 | if (overflow != 0) evaluated: overflow != 0 yes Evaluation Count:159 | yes Evaluation Count:254467 |
| 159-254467 |
3174 | *overflow = false; executed: *overflow = false; Execution Count:159 | 159 |
3175 | return l; executed: return l; Execution Count:254624 | 254624 |
3176 | } | - |
3177 | | - |
3178 | qulonglong QLocalePrivate::bytearrayToUnsLongLong(const char *num, int base, bool *ok) | - |
3179 | { | - |
3180 | bool _ok; executed (the execution status of this line is deduced): bool _ok; | - |
3181 | const char *endptr; executed (the execution status of this line is deduced): const char *endptr; | - |
3182 | qulonglong l = qstrtoull(num, &endptr, base, &_ok); executed (the execution status of this line is deduced): qulonglong l = qstrtoull(num, &endptr, base, &_ok); | - |
3183 | | - |
3184 | if (!_ok || *endptr != '\0') { evaluated: !_ok yes Evaluation Count:660 | yes Evaluation Count:26884 |
evaluated: *endptr != '\0' yes Evaluation Count:118 | yes Evaluation Count:26766 |
| 118-26884 |
3185 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:765 | yes Evaluation Count:13 |
| 13-765 |
3186 | *ok = false; executed: *ok = false; Execution Count:765 | 765 |
3187 | return 0; executed: return 0; Execution Count:778 | 778 |
3188 | } | - |
3189 | | - |
3190 | if (ok != 0) evaluated: ok != 0 yes Evaluation Count:25655 | yes Evaluation Count:1111 |
| 1111-25655 |
3191 | *ok = true; executed: *ok = true; Execution Count:25655 | 25655 |
3192 | return l; executed: return l; Execution Count:26766 | 26766 |
3193 | } | - |
3194 | | - |
3195 | /*! | - |
3196 | \since 4.8 | - |
3197 | | - |
3198 | \enum QLocale::CurrencySymbolFormat | - |
3199 | | - |
3200 | Specifies the format of the currency symbol. | - |
3201 | | - |
3202 | \value CurrencyIsoCode a ISO-4217 code of the currency. | - |
3203 | \value CurrencySymbol a currency symbol. | - |
3204 | \value CurrencyDisplayName a user readable name of the currency. | - |
3205 | */ | - |
3206 | | - |
3207 | /*! | - |
3208 | \since 4.8 | - |
3209 | Returns a currency symbol according to the \a format. | - |
3210 | */ | - |
3211 | QString QLocale::currencySymbol(QLocale::CurrencySymbolFormat format) const | - |
3212 | { | - |
3213 | #ifndef QT_NO_SYSTEMLOCALE | - |
3214 | if (d->m_data == systemData()) { partially evaluated: d->m_data == systemData() no Evaluation Count:0 | yes Evaluation Count:20 |
| 0-20 |
3215 | QVariant res = systemLocale()->query(QSystemLocale::CurrencySymbol, format); never executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::CurrencySymbol, format); | - |
3216 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
3217 | return res.toString(); never executed: return res.toString(); | 0 |
3218 | } | 0 |
3219 | #endif | - |
3220 | quint32 idx, size; executed (the execution status of this line is deduced): quint32 idx, size; | - |
3221 | switch (format) { | - |
3222 | case CurrencySymbol: | - |
3223 | idx = d->m_data->m_currency_symbol_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_currency_symbol_idx; | - |
3224 | size = d->m_data->m_currency_symbol_size; executed (the execution status of this line is deduced): size = d->m_data->m_currency_symbol_size; | - |
3225 | return getLocaleData(currency_symbol_data + idx, size); executed: return getLocaleData(currency_symbol_data + idx, size); Execution Count:16 | 16 |
3226 | case CurrencyDisplayName: | - |
3227 | idx = d->m_data->m_currency_display_name_idx; never executed (the execution status of this line is deduced): idx = d->m_data->m_currency_display_name_idx; | - |
3228 | size = d->m_data->m_currency_display_name_size; never executed (the execution status of this line is deduced): size = d->m_data->m_currency_display_name_size; | - |
3229 | return getLocaleListData(currency_display_name_data + idx, size, 0); never executed: return getLocaleListData(currency_display_name_data + idx, size, 0); | 0 |
3230 | case CurrencyIsoCode: { | - |
3231 | int len = 0; executed (the execution status of this line is deduced): int len = 0; | - |
3232 | const QLocaleData *data = this->d->m_data; executed (the execution status of this line is deduced): const QLocaleData *data = this->d->m_data; | - |
3233 | for (; len < 3; ++len) partially evaluated: len < 3 yes Evaluation Count:4 | no Evaluation Count:0 |
| 0-4 |
3234 | if (!data->m_currency_iso_code[len]) partially evaluated: !data->m_currency_iso_code[len] yes Evaluation Count:4 | no Evaluation Count:0 |
| 0-4 |
3235 | break; executed: break; Execution Count:4 | 4 |
3236 | return len ? QString::fromLatin1(data->m_currency_iso_code, len) : QString(); executed: return len ? QString::fromLatin1(data->m_currency_iso_code, len) : QString(); Execution Count:4 | 4 |
3237 | } | - |
3238 | } | - |
3239 | return QString(); never executed: return QString(); | 0 |
3240 | } | - |
3241 | | - |
3242 | /*! | - |
3243 | \since 4.8 | - |
3244 | | - |
3245 | Returns a localized string representation of \a value as a currency. | - |
3246 | If the \a symbol is provided it is used instead of the default currency symbol. | - |
3247 | | - |
3248 | \sa currencySymbol() | - |
3249 | */ | - |
3250 | QString QLocale::toCurrencyString(qlonglong value, const QString &symbol) const | - |
3251 | { | - |
3252 | #ifndef QT_NO_SYSTEMLOCALE | - |
3253 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:1 | yes Evaluation Count:5 |
| 1-5 |
3254 | QSystemLocale::CurrencyToStringArgument arg(value, symbol); executed (the execution status of this line is deduced): QSystemLocale::CurrencyToStringArgument arg(value, symbol); | - |
3255 | QVariant res = systemLocale()->query(QSystemLocale::CurrencyToString, QVariant::fromValue(arg)); executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::CurrencyToString, QVariant::fromValue(arg)); | - |
3256 | if (!res.isNull()) partially evaluated: !res.isNull() no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
3257 | return res.toString(); never executed: return res.toString(); | 0 |
3258 | } executed: } Execution Count:1 | 1 |
3259 | #endif | - |
3260 | const QLocalePrivate *d = this->d; executed (the execution status of this line is deduced): const QLocalePrivate *d = this->d; | - |
3261 | quint8 idx = d->m_data->m_currency_format_idx; executed (the execution status of this line is deduced): quint8 idx = d->m_data->m_currency_format_idx; | - |
3262 | quint8 size = d->m_data->m_currency_format_size; executed (the execution status of this line is deduced): quint8 size = d->m_data->m_currency_format_size; | - |
3263 | if (d->m_data->m_currency_negative_format_size && value < 0) { evaluated: d->m_data->m_currency_negative_format_size yes Evaluation Count:2 | yes Evaluation Count:4 |
evaluated: value < 0 yes Evaluation Count:1 | yes Evaluation Count:1 |
| 1-4 |
3264 | idx = d->m_data->m_currency_negative_format_idx; executed (the execution status of this line is deduced): idx = d->m_data->m_currency_negative_format_idx; | - |
3265 | size = d->m_data->m_currency_negative_format_size; executed (the execution status of this line is deduced): size = d->m_data->m_currency_negative_format_size; | - |
3266 | value = -value; executed (the execution status of this line is deduced): value = -value; | - |
3267 | } executed: } Execution Count:1 | 1 |
3268 | QString str = toString(value); executed (the execution status of this line is deduced): QString str = toString(value); | - |
3269 | QString sym = symbol.isNull() ? currencySymbol() : symbol; evaluated: symbol.isNull() yes Evaluation Count:4 | yes Evaluation Count:2 |
| 2-4 |
3270 | if (sym.isEmpty()) evaluated: sym.isEmpty() yes Evaluation Count:1 | yes Evaluation Count:5 |
| 1-5 |
3271 | sym = currencySymbol(QLocale::CurrencyIsoCode); executed: sym = currencySymbol(QLocale::CurrencyIsoCode); Execution Count:1 | 1 |
3272 | QString format = getLocaleData(currency_format_data + idx, size); executed (the execution status of this line is deduced): QString format = getLocaleData(currency_format_data + idx, size); | - |
3273 | return format.arg(str, sym); executed: return format.arg(str, sym); Execution Count:6 | 6 |
3274 | } | - |
3275 | | - |
3276 | /*! | - |
3277 | \since 4.8 | - |
3278 | \overload | - |
3279 | */ | - |
3280 | QString QLocale::toCurrencyString(qulonglong value, const QString &symbol) const | - |
3281 | { | - |
3282 | #ifndef QT_NO_SYSTEMLOCALE | - |
3283 | if (d->m_data == systemData()) { partially evaluated: d->m_data == systemData() no Evaluation Count:0 | yes Evaluation Count:5 |
| 0-5 |
3284 | QSystemLocale::CurrencyToStringArgument arg(value, symbol); never executed (the execution status of this line is deduced): QSystemLocale::CurrencyToStringArgument arg(value, symbol); | - |
3285 | QVariant res = systemLocale()->query(QSystemLocale::CurrencyToString, QVariant::fromValue(arg)); never executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::CurrencyToString, QVariant::fromValue(arg)); | - |
3286 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
3287 | return res.toString(); never executed: return res.toString(); | 0 |
3288 | } | 0 |
3289 | #endif | - |
3290 | const QLocaleData *data = this->d->m_data; executed (the execution status of this line is deduced): const QLocaleData *data = this->d->m_data; | - |
3291 | quint8 idx = data->m_currency_format_idx; executed (the execution status of this line is deduced): quint8 idx = data->m_currency_format_idx; | - |
3292 | quint8 size = data->m_currency_format_size; executed (the execution status of this line is deduced): quint8 size = data->m_currency_format_size; | - |
3293 | QString str = toString(value); executed (the execution status of this line is deduced): QString str = toString(value); | - |
3294 | QString sym = symbol.isNull() ? currencySymbol() : symbol; evaluated: symbol.isNull() yes Evaluation Count:4 | yes Evaluation Count:1 |
| 1-4 |
3295 | if (sym.isEmpty()) evaluated: sym.isEmpty() yes Evaluation Count:1 | yes Evaluation Count:4 |
| 1-4 |
3296 | sym = currencySymbol(QLocale::CurrencyIsoCode); executed: sym = currencySymbol(QLocale::CurrencyIsoCode); Execution Count:1 | 1 |
3297 | QString format = getLocaleData(currency_format_data + idx, size); executed (the execution status of this line is deduced): QString format = getLocaleData(currency_format_data + idx, size); | - |
3298 | return format.arg(str, sym); executed: return format.arg(str, sym); Execution Count:5 | 5 |
3299 | } | - |
3300 | | - |
3301 | /*! | - |
3302 | \since 4.8 | - |
3303 | \overload | - |
3304 | */ | - |
3305 | QString QLocale::toCurrencyString(double value, const QString &symbol) const | - |
3306 | { | - |
3307 | #ifndef QT_NO_SYSTEMLOCALE | - |
3308 | if (d->m_data == systemData()) { partially evaluated: d->m_data == systemData() no Evaluation Count:0 | yes Evaluation Count:9 |
| 0-9 |
3309 | QSystemLocale::CurrencyToStringArgument arg(value, symbol); never executed (the execution status of this line is deduced): QSystemLocale::CurrencyToStringArgument arg(value, symbol); | - |
3310 | QVariant res = systemLocale()->query(QSystemLocale::CurrencyToString, QVariant::fromValue(arg)); never executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::CurrencyToString, QVariant::fromValue(arg)); | - |
3311 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
3312 | return res.toString(); never executed: return res.toString(); | 0 |
3313 | } | 0 |
3314 | #endif | - |
3315 | const QLocaleData *data = this->d->m_data; executed (the execution status of this line is deduced): const QLocaleData *data = this->d->m_data; | - |
3316 | quint8 idx = data->m_currency_format_idx; executed (the execution status of this line is deduced): quint8 idx = data->m_currency_format_idx; | - |
3317 | quint8 size = data->m_currency_format_size; executed (the execution status of this line is deduced): quint8 size = data->m_currency_format_size; | - |
3318 | if (data->m_currency_negative_format_size && value < 0) { evaluated: data->m_currency_negative_format_size yes Evaluation Count:2 | yes Evaluation Count:7 |
evaluated: value < 0 yes Evaluation Count:1 | yes Evaluation Count:1 |
| 1-7 |
3319 | idx = data->m_currency_negative_format_idx; executed (the execution status of this line is deduced): idx = data->m_currency_negative_format_idx; | - |
3320 | size = data->m_currency_negative_format_size; executed (the execution status of this line is deduced): size = data->m_currency_negative_format_size; | - |
3321 | value = -value; executed (the execution status of this line is deduced): value = -value; | - |
3322 | } executed: } Execution Count:1 | 1 |
3323 | QString str = toString(value, 'f', d->m_data->m_currency_digits); executed (the execution status of this line is deduced): QString str = toString(value, 'f', d->m_data->m_currency_digits); | - |
3324 | QString sym = symbol.isNull() ? currencySymbol() : symbol; evaluated: symbol.isNull() yes Evaluation Count:8 | yes Evaluation Count:1 |
| 1-8 |
3325 | if (sym.isEmpty()) evaluated: sym.isEmpty() yes Evaluation Count:2 | yes Evaluation Count:7 |
| 2-7 |
3326 | sym = currencySymbol(QLocale::CurrencyIsoCode); executed: sym = currencySymbol(QLocale::CurrencyIsoCode); Execution Count:2 | 2 |
3327 | QString format = getLocaleData(currency_format_data + idx, size); executed (the execution status of this line is deduced): QString format = getLocaleData(currency_format_data + idx, size); | - |
3328 | return format.arg(str, sym); executed: return format.arg(str, sym); Execution Count:9 | 9 |
3329 | } | - |
3330 | | - |
3331 | /*! | - |
3332 | \since 4.8 | - |
3333 | | - |
3334 | Returns an ordered list of locale names for translation purposes in | - |
3335 | preference order (like "en", "en-US", "en-Latn-US"). | - |
3336 | | - |
3337 | The return value represents locale names that the user expects to see the | - |
3338 | UI translation in. | - |
3339 | | - |
3340 | Most like you do not need to use this function directly, but just pass the | - |
3341 | QLocale object to the QTranslator::load() function. | - |
3342 | | - |
3343 | The first item in the list is the most preferred one. | - |
3344 | | - |
3345 | \sa QTranslator, bcp47Name() | - |
3346 | */ | - |
3347 | QStringList QLocale::uiLanguages() const | - |
3348 | { | - |
3349 | #ifndef QT_NO_SYSTEMLOCALE | - |
3350 | if (d->m_data == systemData()) { evaluated: d->m_data == systemData() yes Evaluation Count:6 | yes Evaluation Count:23 |
| 6-23 |
3351 | QVariant res = systemLocale()->query(QSystemLocale::UILanguages, QVariant()); executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::UILanguages, QVariant()); | - |
3352 | if (!res.isNull()) { partially evaluated: !res.isNull() yes Evaluation Count:6 | no Evaluation Count:0 |
| 0-6 |
3353 | QStringList result = res.toStringList(); executed (the execution status of this line is deduced): QStringList result = res.toStringList(); | - |
3354 | if (!result.isEmpty()) partially evaluated: !result.isEmpty() yes Evaluation Count:6 | no Evaluation Count:0 |
| 0-6 |
3355 | return result; executed: return result; Execution Count:6 | 6 |
3356 | } | 0 |
3357 | } | 0 |
3358 | #endif | - |
3359 | QLocaleId id = QLocaleId::fromIds(d->m_data->m_language_id, d->m_data->m_script_id, d->m_data->m_country_id); executed (the execution status of this line is deduced): QLocaleId id = QLocaleId::fromIds(d->m_data->m_language_id, d->m_data->m_script_id, d->m_data->m_country_id); | - |
3360 | const QLocaleId max = id.withLikelySubtagsAdded(); executed (the execution status of this line is deduced): const QLocaleId max = id.withLikelySubtagsAdded(); | - |
3361 | const QLocaleId min = max.withLikelySubtagsRemoved(); executed (the execution status of this line is deduced): const QLocaleId min = max.withLikelySubtagsRemoved(); | - |
3362 | | - |
3363 | QStringList uiLanguages; executed (the execution status of this line is deduced): QStringList uiLanguages; | - |
3364 | uiLanguages.append(min.bcp47Name()); executed (the execution status of this line is deduced): uiLanguages.append(min.bcp47Name()); | - |
3365 | if (id.script_id) { evaluated: id.script_id yes Evaluation Count:21 | yes Evaluation Count:2 |
| 2-21 |
3366 | id.script_id = 0; executed (the execution status of this line is deduced): id.script_id = 0; | - |
3367 | if (id != min && id.withLikelySubtagsAdded() == max) evaluated: id != min yes Evaluation Count:15 | yes Evaluation Count:6 |
evaluated: id.withLikelySubtagsAdded() == max yes Evaluation Count:12 | yes Evaluation Count:3 |
| 3-15 |
3368 | uiLanguages.append(id.bcp47Name()); executed: uiLanguages.append(id.bcp47Name()); Execution Count:12 | 12 |
3369 | } executed: } Execution Count:21 | 21 |
3370 | if (max != min && max != id) evaluated: max != min yes Evaluation Count:21 | yes Evaluation Count:2 |
partially evaluated: max != id yes Evaluation Count:21 | no Evaluation Count:0 |
| 0-21 |
3371 | uiLanguages.append(max.bcp47Name()); executed: uiLanguages.append(max.bcp47Name()); Execution Count:21 | 21 |
3372 | return uiLanguages; executed: return uiLanguages; Execution Count:23 | 23 |
3373 | } | - |
3374 | | - |
3375 | /*! | - |
3376 | \since 4.8 | - |
3377 | | - |
3378 | Returns a native name of the language for the locale. For example | - |
3379 | "Schwiizertüütsch" for Swiss-German locale. | - |
3380 | | - |
3381 | \sa nativeCountryName(), languageToString() | - |
3382 | */ | - |
3383 | QString QLocale::nativeLanguageName() const | - |
3384 | { | - |
3385 | #ifndef QT_NO_SYSTEMLOCALE | - |
3386 | if (d->m_data == systemData()) { never evaluated: d->m_data == systemData() | 0 |
3387 | QVariant res = systemLocale()->query(QSystemLocale::NativeLanguageName, QVariant()); never executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::NativeLanguageName, QVariant()); | - |
3388 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
3389 | return res.toString(); never executed: return res.toString(); | 0 |
3390 | } | 0 |
3391 | #endif | - |
3392 | return getLocaleData(endonyms_data + d->m_data->m_language_endonym_idx, d->m_data->m_language_endonym_size); never executed: return getLocaleData(endonyms_data + d->m_data->m_language_endonym_idx, d->m_data->m_language_endonym_size); | 0 |
3393 | } | - |
3394 | | - |
3395 | /*! | - |
3396 | \since 4.8 | - |
3397 | | - |
3398 | Returns a native name of the country for the locale. For example | - |
3399 | "España" for Spanish/Spain locale. | - |
3400 | | - |
3401 | \sa nativeLanguageName(), countryToString() | - |
3402 | */ | - |
3403 | QString QLocale::nativeCountryName() const | - |
3404 | { | - |
3405 | #ifndef QT_NO_SYSTEMLOCALE | - |
3406 | if (d->m_data == systemData()) { never evaluated: d->m_data == systemData() | 0 |
3407 | QVariant res = systemLocale()->query(QSystemLocale::NativeCountryName, QVariant()); never executed (the execution status of this line is deduced): QVariant res = systemLocale()->query(QSystemLocale::NativeCountryName, QVariant()); | - |
3408 | if (!res.isNull()) never evaluated: !res.isNull() | 0 |
3409 | return res.toString(); never executed: return res.toString(); | 0 |
3410 | } | 0 |
3411 | #endif | - |
3412 | return getLocaleData(endonyms_data + d->m_data->m_country_endonym_idx, d->m_data->m_country_endonym_size); never executed: return getLocaleData(endonyms_data + d->m_data->m_country_endonym_idx, d->m_data->m_country_endonym_size); | 0 |
3413 | } | - |
3414 | | - |
3415 | #ifndef QT_NO_DEBUG_STREAM | - |
3416 | QDebug operator<<(QDebug dbg, const QLocale &l) | - |
3417 | { | - |
3418 | dbg.nospace() << "QLocale(" << qPrintable(QLocale::languageToString(l.language())) executed (the execution status of this line is deduced): dbg.nospace() << "QLocale(" << QString(QLocale::languageToString(l.language())).toLocal8Bit().constData() | - |
3419 | << ", " << qPrintable(QLocale::scriptToString(l.script())) executed (the execution status of this line is deduced): << ", " << QString(QLocale::scriptToString(l.script())).toLocal8Bit().constData() | - |
3420 | << ", " << qPrintable(QLocale::countryToString(l.country())) << ')'; executed (the execution status of this line is deduced): << ", " << QString(QLocale::countryToString(l.country())).toLocal8Bit().constData() << ')'; | - |
3421 | return dbg.space(); executed: return dbg.space(); Execution Count:1 | 1 |
3422 | } | - |
3423 | #endif | - |
3424 | QT_END_NAMESPACE | - |
3425 | | - |
| | |