git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use new/delete instead of malloc/free
[enigma2.git]
/
lib
/
base
/
estring.cpp
diff --git
a/lib/base/estring.cpp
b/lib/base/estring.cpp
index 10bfbef81ca130febe685bb7fbe6f3538d8e5ddf..777462996e67bacd679102428469dfb53b5a9ae8 100644
(file)
--- a/
lib/base/estring.cpp
+++ b/
lib/base/estring.cpp
@@
-334,19
+334,21
@@
std::string convertDVBUTF8(const unsigned char *data, int len, int table, int ts
switch(data[0])
{
switch(data[0])
{
- case 1 ... 1
2
:
+ case 1 ... 1
1
:
table=data[i++]+4;
table=data[i++]+4;
-// eDebug("(1..1
2
)text encoded in ISO-8859-%d",table);
+// eDebug("(1..1
1
)text encoded in ISO-8859-%d",table);
break;
case 0x10:
{
// eDebug("(0x10)text encoded in ISO-8859-%d",n);
break;
case 0x10:
{
// eDebug("(0x10)text encoded in ISO-8859-%d",n);
- int n=(data[++i]<<8)|(data[++i]);
+ int n=(data[++i]<<8);
+ n |= (data[++i]);
++i;
switch(n)
{
case 12:
eDebug("unsup. ISO8859-12 enc.", n);
++i;
switch(n)
{
case 12:
eDebug("unsup. ISO8859-12 enc.", n);
+ break;
default:
table=n;
break;
default:
table=n;
break;
@@
-369,9
+371,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;
++i;
eDebug("unsup. Big5 subset of ISO/IEC 10646-1 enc.");
break;
+ case 0x15: // UTF-8 encoding of ISO/IEC 10646-1
+ return std::string((char*)data+1, len-1);
case 0x0:
case 0x0:
- case 0x
D
... 0xF:
- case 0x1
5
... 0x1F:
+ case 0x
C
... 0xF:
+ case 0x1
6
... 0x1F:
eDebug("reserved %d", data[0]);
++i;
break;
eDebug("reserved %d", data[0]);
++i;
break;
@@
-521,7
+525,7
@@
std::string convertLatin1UTF8(const std::string &string)
while (i < len)
{
while (i < len)
{
- unsigned long code=string[i++];
+ unsigned long code=
(unsigned char)
string[i++];
// Unicode->UTF8 encoding
if (code < 0x80) // identity latin <-> utf8 mapping
res[t++]=char(code);
// Unicode->UTF8 encoding
if (code < 0x80) // identity latin <-> utf8 mapping
res[t++]=char(code);