Skip to content

Commit

Permalink
fix: diagnose, but not throw for unicode error
Browse files Browse the repository at this point in the history
in 2.0.x and 2.1.0, README says "it shows warning" for invalid unicode
codepoints. So far, this library just show an error message in stderr
for this case. It is not good to change the behavior fatal in the next
minor release, 2.1.1, that includes patches and improved error msgs.
I will make it throw syntax_error after 2.2.0 for invalid unicode
codepoints. For now, I will keep it to be "warning".
  • Loading branch information
ToruNiina committed Mar 3, 2019
1 parent 363927f commit 2accc9d
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions toml/parser.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -250,10 +250,10 @@ std::string read_utf8_codepoint(const region<Container>& reg,
{
if(0xD800 <= codepoint && codepoint <= 0xDFFF)
{
throw syntax_error(format_underline("[error] "
std::cerr << format_underline("[warning] "
"toml::read_utf8_codepoint: codepoints in the range "
"[0xD800, 0xDFFF] are not valid UTF-8.",
loc, "not a valid UTF-8 codepoint"));
loc, "not a valid UTF-8 codepoint") << std::endl;
}
assert(codepoint < 0xD800 || 0xDFFF < codepoint);
// 1110yyyy 10yxxxxx 10xxxxxx
Expand All @@ -265,10 +265,10 @@ std::string read_utf8_codepoint(const region<Container>& reg,
{
if(0x10FFFF < codepoint) // out of Unicode region
{
throw syntax_error(format_underline("[error] "
std::cerr << format_underline("[error] "
"toml::read_utf8_codepoint: input codepoint is too large to "
"decode as a unicode character.", loc,
"should be in [0x00..0x10FFFF]"));
"should be in [0x00..0x10FFFF]") << std::endl;
}
// 11110yyy 10yyxxxx 10xxxxxx 10xxxxxx
character += static_cast<unsigned char>(0xF0| codepoint >> 18);
Expand Down

0 comments on commit 2accc9d

Please sign in to comment.