| 1241 | |
| 1242 | |
| 1243 | int tss_mbstowcs(ntwcs_t pwz, const_ntmbs_t pbz, size_t nBytes) |
| 1244 | { |
| 1245 | cDebug d("tss_mbstowcs"); |
| 1246 | |
| 1247 | size_t N; |
| 1248 | size_t nConv; |
| 1249 | const_ntmbs_t end = &pbz[nBytes]; |
| 1250 | for (nConv = 0, N = 0; *pbz; pbz += N, ++pwz, ++nConv) |
| 1251 | { |
| 1252 | N = tss_mbtowc(pwz, pbz, end - pbz); |
| 1253 | if (N == (size_t)-1) |
| 1254 | { |
| 1255 | d.TraceDebug("manually converting %X...\n", cConvertUtil::ConvertNonChar(*pbz)); |
| 1256 | |
| 1257 | *pwz = (wchar_t)cConvertUtil::ConvertNonChar(*pbz); |
| 1258 | N = 1; |
| 1259 | } |
| 1260 | } |
| 1261 | |
| 1262 | return (int)nConv; |
| 1263 | } |
| 1264 | } // namespace |
| 1265 | |
| 1266 | #if WCHAR_IS_32_BITS |
no test coverage detected