@@ -23,10 +23,9 @@ void convertUTF8toUTF32(const std::string & input, std::u32string & output)
2323
2424 uint32_t * outStartSaved = (uint32_t *) output.data ();
2525
26- // TODO: Error handling
2726 auto error = linenoise_ng::ConvertUTF8toUTF32 (&inStart, inEnd, &outStart, outEnd, linenoise_ng::strictConversion);
2827
29- const auto outSize = outStart - outStartSaved;
28+ const auto outSize = error ? 0 : outStart - outStartSaved;
3029 output.resize (outSize);
3130}
3231
@@ -41,10 +40,9 @@ void convertUTF16toUTF32(const std::u16string & input, std::u32string & output)
4140
4241 uint32_t * outStartSaved = (uint32_t *) output.data ();
4342
44- // TODO: Error handling
4543 auto error = linenoise_ng::ConvertUTF16toUTF32 (&inStart, inEnd, &outStart, outEnd, linenoise_ng::strictConversion);
4644
47- const auto outSize = outStart - outStartSaved;
45+ const auto outSize = error ? 0 : outStart - outStartSaved;
4846 output.resize (outSize);
4947}
5048
@@ -59,10 +57,9 @@ void convertUTF32toUTF8(const std::u32string & input, std::string & output)
5957
6058 uint8_t * outStartSaved = (uint8_t *) output.data ();
6159
62- // TODO: Error handling
6360 auto error = linenoise_ng::ConvertUTF32toUTF8 (&inStart, inEnd, &outStart, outEnd, linenoise_ng::strictConversion);
6461
65- const auto outSize = outStart - outStartSaved;
62+ const auto outSize = error ? 0 : outStart - outStartSaved;
6663 output.resize (outSize);
6764}
6865
@@ -78,10 +75,9 @@ void convertUTF32toUTF16(const std::u32string & input, std::u16string & output)
7875
7976 char16_t * outStartSaved = (char16_t *) output.data ();
8077
81- // TODO: Error handling
8278 auto error = linenoise_ng::ConvertUTF32toUTF16 (&inStart, inEnd, &outStart, outEnd, linenoise_ng::strictConversion);
8379
84- const auto outSize = outStart - outStartSaved;
80+ const auto outSize = error ? 0 : outStart - outStartSaved;
8581 output.resize (outSize);
8682}
8783
@@ -248,20 +244,24 @@ void decode(const std::u32string & input, std::wstring & output, const Encoding
248244 std::string temp;
249245 decode (input, temp, encoding);
250246 output = std::wstring (temp.begin (), temp.end ());
247+ break ;
251248 }
252249
253250 case 2 :
254251 {
255252 std::u16string temp;
256253 decode (input, temp, encoding);
257254 output = std::wstring (temp.begin (), temp.end ());
255+ break ;
258256 }
259257
260258 case 4 :
261259 output = std::wstring (input.begin (), input.end ());
260+ break ;
262261
263262 default :
264263 assert (false );
264+ break ;
265265 }
266266}
267267
0 commit comments