]> git.tdb.fi Git - libs/core.git/blobdiff - source/stringcodec/iso646fi.cpp
Return -1 from decode_char if there is no input
[libs/core.git] / source / stringcodec / iso646fi.cpp
index ee7705b36898caec0af5d5b81724076828a8559a..64e429d4197a648349edbda2f8bc88d5df070454 100644 (file)
@@ -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;