diff -Naur vdr-1.7.12_orig/libsi/si.c vdr-1.7.12/libsi/si.c --- vdr-1.7.12_orig/libsi/si.c 2009-12-05 17:20:12.000000000 +0100 +++ vdr-1.7.12/libsi/si.c 2010-02-10 01:09:08.743017649 +0100 @@ -339,7 +339,7 @@ // a string indicating that table. If no table can be determined, the // default ISO6937 is returned. If a table can be determined, the buffer // and length are adjusted accordingly. -static const char *getCharacterTable(const unsigned char *&buffer, int &length, bool *isSingleByte = NULL) { +const char *getCharacterTable(const unsigned char *&buffer, int &length, bool *isSingleByte/* = NULL*/) { const char *cs = "ISO6937"; // Workaround for broadcaster stupidity: according to // "ETSI EN 300 468" the default character set is ISO6937. But unfortunately some @@ -375,7 +375,7 @@ return cs; } -static bool convertCharacterTable(const char *from, size_t fromLength, char *to, size_t toLength, const char *fromCode) +bool convertCharacterTable(const char *from, size_t fromLength, char *to, size_t toLength, const char *fromCode) { if (SystemCharacterTable) { iconv_t cd = iconv_open(SystemCharacterTable, fromCode); diff -Naur vdr-1.7.12_orig/libsi/si.h vdr-1.7.12/libsi/si.h --- vdr-1.7.12_orig/libsi/si.h 2009-12-06 12:37:35.000000000 +0100 +++ vdr-1.7.12/libsi/si.h 2010-02-10 01:09:08.743017649 +0100 @@ -492,6 +492,13 @@ // like "iso8859-15" or "utf-8" (case insensitive). // Returns true if the character table was recognized. bool SetSystemCharacterTable(const char *CharacterTable); +// Determines the character table used in the given buffer and returns +// a string indicating that table. If no table can be determined, the +// default ISO6937 is returned. If a table can be determined, the buffer +// and length are adjusted accordingly. +const char *getCharacterTable(const unsigned char *&buffer, int &length, bool *isSingleByte = NULL); +bool convertCharacterTable(const char *from, size_t fromLength, char *to, size_t toLength, const char *fromCode); +extern bool SystemCharacterTableIsSingleByte; } //end of namespace