X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fstringcodec%2Fiso646fi.cpp;fp=source%2Fstringcodec%2Fiso646fi.cpp;h=64e429d4197a648349edbda2f8bc88d5df070454;hb=3e3868860d4f4ca1bbe55fbf271c804307cea3c9;hp=ee7705b36898caec0af5d5b81724076828a8559a;hpb=02794ef3620d0d9cc3b8f1c0d8f2995c825fdf4f;p=libs%2Fcore.git diff --git a/source/stringcodec/iso646fi.cpp b/source/stringcodec/iso646fi.cpp index ee7705b..64e429d 100644 --- a/source/stringcodec/iso646fi.cpp +++ b/source/stringcodec/iso646fi.cpp @@ -44,16 +44,14 @@ void Iso646Fi::Encoder::transliterate(unichar, string &buf) unichar Iso646Fi::Decoder::decode_char(const string &str, string::const_iterator &i) { if(i==str.end()) - return error("No input"); + return -1; unsigned char ch = *i; - int tch = (ch<=0x7F ? transform_mapping_or_direct(mapping, map_size, ch, true) : -1); - unichar result; - if(tch==-1) + if(ch>=0x80) result = error("Undefined ISO-646-FI character"); else - result = tch; + result = transform_mapping_or_direct(mapping, map_size, ch, true); ++i; return result;