| 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 | #include "qlatincodec_p.h" | - |
| 43 | #include "qlist.h" | - |
| 44 | | - |
| 45 | #ifndef QT_NO_TEXTCODEC | - |
| 46 | | - |
| 47 | QT_BEGIN_NAMESPACE | - |
| 48 | | - |
| 49 | QLatin1Codec::~QLatin1Codec() | - |
| 50 | { | - |
| 51 | } | - |
| 52 | | - |
| 53 | QString QLatin1Codec::convertToUnicode(const char *chars, int len, ConverterState *) const | - |
| 54 | { | - |
| 55 | if (chars == 0) partially evaluated: chars == 0| no Evaluation Count:0 | yes Evaluation Count:107 |
| 0-107 |
| 56 | return QString(); never executed: return QString(); | 0 |
| 57 | | - |
| 58 | return QString::fromLatin1(chars, len); executed: return QString::fromLatin1(chars, len);Execution Count:107 | 107 |
| 59 | } | - |
| 60 | | - |
| 61 | | - |
| 62 | QByteArray QLatin1Codec::convertFromUnicode(const QChar *ch, int len, ConverterState *state) const | - |
| 63 | { | - |
| 64 | const char replacement = (state && state->flags & ConvertInvalidToNull) ? 0 : '?'; evaluated: state| yes Evaluation Count:37 | yes Evaluation Count:40 |
partially evaluated: state->flags & ConvertInvalidToNull| no Evaluation Count:0 | yes Evaluation Count:37 |
| 0-40 |
| 65 | QByteArray r(len, Qt::Uninitialized); executed (the execution status of this line is deduced): QByteArray r(len, Qt::Uninitialized); | - |
| 66 | char *d = r.data(); executed (the execution status of this line is deduced): char *d = r.data(); | - |
| 67 | int invalid = 0; executed (the execution status of this line is deduced): int invalid = 0; | - |
| 68 | for (int i = 0; i < len; ++i) { evaluated: i < len| yes Evaluation Count:10439 | yes Evaluation Count:77 |
| 77-10439 |
| 69 | if (ch[i] > 0xff) { partially evaluated: ch[i] > 0xff| no Evaluation Count:0 | yes Evaluation Count:10439 |
| 0-10439 |
| 70 | d[i] = replacement; never executed (the execution status of this line is deduced): d[i] = replacement; | - |
| 71 | ++invalid; never executed (the execution status of this line is deduced): ++invalid; | - |
| 72 | } else { | 0 |
| 73 | d[i] = (char)ch[i].cell(); executed (the execution status of this line is deduced): d[i] = (char)ch[i].cell(); | - |
| 74 | } executed: }Execution Count:10439 | 10439 |
| 75 | } | - |
| 76 | if (state) { evaluated: state| yes Evaluation Count:37 | yes Evaluation Count:40 |
| 37-40 |
| 77 | state->invalidChars += invalid; executed (the execution status of this line is deduced): state->invalidChars += invalid; | - |
| 78 | } executed: }Execution Count:37 | 37 |
| 79 | return r; executed: return r;Execution Count:77 | 77 |
| 80 | } | - |
| 81 | | - |
| 82 | QByteArray QLatin1Codec::name() const | - |
| 83 | { | - |
| 84 | return "ISO-8859-1"; executed: return "ISO-8859-1";Execution Count:133 | 133 |
| 85 | } | - |
| 86 | | - |
| 87 | QList<QByteArray> QLatin1Codec::aliases() const | - |
| 88 | { | - |
| 89 | QList<QByteArray> list; executed (the execution status of this line is deduced): QList<QByteArray> list; | - |
| 90 | list << "latin1" executed (the execution status of this line is deduced): list << "latin1" | - |
| 91 | << "CP819" executed (the execution status of this line is deduced): << "CP819" | - |
| 92 | << "IBM819" executed (the execution status of this line is deduced): << "IBM819" | - |
| 93 | << "iso-ir-100" executed (the execution status of this line is deduced): << "iso-ir-100" | - |
| 94 | << "csISOLatin1"; executed (the execution status of this line is deduced): << "csISOLatin1"; | - |
| 95 | return list; executed: return list;Execution Count:128 | 128 |
| 96 | } | - |
| 97 | | - |
| 98 | | - |
| 99 | int QLatin1Codec::mibEnum() const | - |
| 100 | { | - |
| 101 | return 4; executed: return 4;Execution Count:29 | 29 |
| 102 | } | - |
| 103 | | - |
| 104 | | - |
| 105 | QLatin15Codec::~QLatin15Codec() | - |
| 106 | { | - |
| 107 | } | - |
| 108 | | - |
| 109 | QString QLatin15Codec::convertToUnicode(const char* chars, int len, ConverterState *) const | - |
| 110 | { | - |
| 111 | if (chars == 0) never evaluated: chars == 0 | 0 |
| 112 | return QString(); never executed: return QString(); | 0 |
| 113 | | - |
| 114 | QString str = QString::fromLatin1(chars, len); never executed (the execution status of this line is deduced): QString str = QString::fromLatin1(chars, len); | - |
| 115 | QChar *uc = str.data(); never executed (the execution status of this line is deduced): QChar *uc = str.data(); | - |
| 116 | while(len--) { | 0 |
| 117 | switch(uc->unicode()) { | - |
| 118 | case 0xa4: | - |
| 119 | *uc = 0x20ac; never executed (the execution status of this line is deduced): *uc = 0x20ac; | - |
| 120 | break; | 0 |
| 121 | case 0xa6: | - |
| 122 | *uc = 0x0160; never executed (the execution status of this line is deduced): *uc = 0x0160; | - |
| 123 | break; | 0 |
| 124 | case 0xa8: | - |
| 125 | *uc = 0x0161; never executed (the execution status of this line is deduced): *uc = 0x0161; | - |
| 126 | break; | 0 |
| 127 | case 0xb4: | - |
| 128 | *uc = 0x017d; never executed (the execution status of this line is deduced): *uc = 0x017d; | - |
| 129 | break; | 0 |
| 130 | case 0xb8: | - |
| 131 | *uc = 0x017e; never executed (the execution status of this line is deduced): *uc = 0x017e; | - |
| 132 | break; | 0 |
| 133 | case 0xbc: | - |
| 134 | *uc = 0x0152; never executed (the execution status of this line is deduced): *uc = 0x0152; | - |
| 135 | break; | 0 |
| 136 | case 0xbd: | - |
| 137 | *uc = 0x0153; never executed (the execution status of this line is deduced): *uc = 0x0153; | - |
| 138 | break; | 0 |
| 139 | case 0xbe: | - |
| 140 | *uc = 0x0178; never executed (the execution status of this line is deduced): *uc = 0x0178; | - |
| 141 | break; | 0 |
| 142 | default: | - |
| 143 | break; | 0 |
| 144 | } | - |
| 145 | uc++; never executed (the execution status of this line is deduced): uc++; | - |
| 146 | } | 0 |
| 147 | return str; never executed: return str; | 0 |
| 148 | } | - |
| 149 | | - |
| 150 | QByteArray QLatin15Codec::convertFromUnicode(const QChar *in, int length, ConverterState *state) const | - |
| 151 | { | - |
| 152 | const char replacement = (state && state->flags & ConvertInvalidToNull) ? 0 : '?'; never evaluated: state never evaluated: state->flags & ConvertInvalidToNull | 0 |
| 153 | QByteArray r(length, Qt::Uninitialized); never executed (the execution status of this line is deduced): QByteArray r(length, Qt::Uninitialized); | - |
| 154 | char *d = r.data(); never executed (the execution status of this line is deduced): char *d = r.data(); | - |
| 155 | int invalid = 0; never executed (the execution status of this line is deduced): int invalid = 0; | - |
| 156 | for (int i = 0; i < length; ++i) { never evaluated: i < length | 0 |
| 157 | uchar c; never executed (the execution status of this line is deduced): uchar c; | - |
| 158 | ushort uc = in[i].unicode(); never executed (the execution status of this line is deduced): ushort uc = in[i].unicode(); | - |
| 159 | if (uc < 0x0100) { never evaluated: uc < 0x0100 | 0 |
| 160 | if (uc > 0xa3) { never evaluated: uc > 0xa3 | 0 |
| 161 | switch(uc) { | - |
| 162 | case 0xa4: | - |
| 163 | case 0xa6: | - |
| 164 | case 0xa8: | - |
| 165 | case 0xb4: | - |
| 166 | case 0xb8: | - |
| 167 | case 0xbc: | - |
| 168 | case 0xbd: | - |
| 169 | case 0xbe: | - |
| 170 | c = replacement; never executed (the execution status of this line is deduced): c = replacement; | - |
| 171 | ++invalid; never executed (the execution status of this line is deduced): ++invalid; | - |
| 172 | break; | 0 |
| 173 | default: | - |
| 174 | c = (unsigned char) uc; never executed (the execution status of this line is deduced): c = (unsigned char) uc; | - |
| 175 | break; | 0 |
| 176 | } | - |
| 177 | } else { | 0 |
| 178 | c = (unsigned char) uc; never executed (the execution status of this line is deduced): c = (unsigned char) uc; | - |
| 179 | } | 0 |
| 180 | } else { | - |
| 181 | if (uc == 0x20ac) never evaluated: uc == 0x20ac | 0 |
| 182 | c = 0xa4; never executed: c = 0xa4; | 0 |
| 183 | else if ((uc & 0xff00) == 0x0100) { never evaluated: (uc & 0xff00) == 0x0100 | 0 |
| 184 | switch(uc) { | - |
| 185 | case 0x0160: | - |
| 186 | c = 0xa6; never executed (the execution status of this line is deduced): c = 0xa6; | - |
| 187 | break; | 0 |
| 188 | case 0x0161: | - |
| 189 | c = 0xa8; never executed (the execution status of this line is deduced): c = 0xa8; | - |
| 190 | break; | 0 |
| 191 | case 0x017d: | - |
| 192 | c = 0xb4; never executed (the execution status of this line is deduced): c = 0xb4; | - |
| 193 | break; | 0 |
| 194 | case 0x017e: | - |
| 195 | c = 0xb8; never executed (the execution status of this line is deduced): c = 0xb8; | - |
| 196 | break; | 0 |
| 197 | case 0x0152: | - |
| 198 | c = 0xbc; never executed (the execution status of this line is deduced): c = 0xbc; | - |
| 199 | break; | 0 |
| 200 | case 0x0153: | - |
| 201 | c = 0xbd; never executed (the execution status of this line is deduced): c = 0xbd; | - |
| 202 | break; | 0 |
| 203 | case 0x0178: | - |
| 204 | c = 0xbe; never executed (the execution status of this line is deduced): c = 0xbe; | - |
| 205 | break; | 0 |
| 206 | default: | - |
| 207 | c = replacement; never executed (the execution status of this line is deduced): c = replacement; | - |
| 208 | ++invalid; never executed (the execution status of this line is deduced): ++invalid; | - |
| 209 | } | 0 |
| 210 | } else { | 0 |
| 211 | c = replacement; never executed (the execution status of this line is deduced): c = replacement; | - |
| 212 | ++invalid; never executed (the execution status of this line is deduced): ++invalid; | - |
| 213 | } | 0 |
| 214 | } | - |
| 215 | d[i] = (char)c; never executed (the execution status of this line is deduced): d[i] = (char)c; | - |
| 216 | } | 0 |
| 217 | if (state) { | 0 |
| 218 | state->remainingChars = 0; never executed (the execution status of this line is deduced): state->remainingChars = 0; | - |
| 219 | state->invalidChars += invalid; never executed (the execution status of this line is deduced): state->invalidChars += invalid; | - |
| 220 | } | 0 |
| 221 | return r; never executed: return r; | 0 |
| 222 | } | - |
| 223 | | - |
| 224 | | - |
| 225 | QByteArray QLatin15Codec::name() const | - |
| 226 | { | - |
| 227 | return "ISO-8859-15"; never executed: return "ISO-8859-15"; | 0 |
| 228 | } | - |
| 229 | | - |
| 230 | QList<QByteArray> QLatin15Codec::aliases() const | - |
| 231 | { | - |
| 232 | QList<QByteArray> list; never executed (the execution status of this line is deduced): QList<QByteArray> list; | - |
| 233 | list << "latin9"; never executed (the execution status of this line is deduced): list << "latin9"; | - |
| 234 | return list; never executed: return list; | 0 |
| 235 | } | - |
| 236 | | - |
| 237 | int QLatin15Codec::mibEnum() const | - |
| 238 | { | - |
| 239 | return 111; never executed: return 111; | 0 |
| 240 | } | - |
| 241 | | - |
| 242 | QT_END_NAMESPACE | - |
| 243 | | - |
| 244 | #endif // QT_NO_TEXTCODEC | - |
| 245 | | - |
| | |