X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e714c0719330427ea0b420e877de8605d81364c7..b14f1520fe0dabd185ab3555c9d2dd8ab5276dd0:/lib/base/estring.cpp diff --git a/lib/base/estring.cpp b/lib/base/estring.cpp index 74d773c4..487dceec 100644 --- a/lib/base/estring.cpp +++ b/lib/base/estring.cpp @@ -5,6 +5,24 @@ #include #include +std::string buildShortName( const std::string &str ) +{ + std::string tmp; + static char stropen[3] = { 0xc2, 0x86, 0x00 }; + static char strclose[3] = { 0xc2, 0x87, 0x00 }; + unsigned int open=std::string::npos-1; + while ( (open = str.find(stropen, open+2)) != std::string::npos ) + { + unsigned int close = str.find(strclose, open); + if ( close != std::string::npos ) + { + tmp+=str.substr( open+2, close-(open+2) ); + eDebug("now %s", tmp.c_str()); + } + } + return tmp.length() ? tmp : str; +} + std::string getNum(int val, int sys) { // Returns a string that contain the value val as string @@ -371,14 +389,11 @@ std::string convertDVBUTF8(const unsigned char *data, int len, int table, int ts ++i; eDebug("unsup. Big5 subset of ISO/IEC 10646-1 enc."); break; - case 0x15: - ++i; - eDebug("unsup. UTF-8 encoding of ISO/IEC 10646-1."); - break; + case 0x15: // UTF-8 encoding of ISO/IEC 10646-1 + return std::string((char*)data+1, len-1); case 0x0: case 0xC ... 0xF: case 0x16 ... 0x1F: - default: eDebug("reserved %d", data[0]); ++i; break;