aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vdr/files/patch-z-libsi-si.c
blob: d81cc482518ad486b596eb935f53e9d70c05bbf2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
--- libsi/si.c.orig
+++ libsi/si.c
@@ -308,6 +308,25 @@ static const char *CharacterTables2[] = 
   "ISO-8859-15", // 0x0F
 };
 
+static const char *CharacterTables3[] = {
+  NULL,          // 0x00
+  "ISO8859-1",  // 0x01
+  "ISO8859-2",  // 0x02
+  "ISO8859-3",  // 0x03
+  "ISO8859-4",  // 0x04
+  "ISO8859-5",  // 0x05
+  "ISO8859-6",  // 0x06
+  "ISO8859-7",  // 0x07
+  "ISO8859-8",  // 0x08
+  "ISO8859-9",  // 0x09
+  "ISO8859-10", // 0x0A
+  "ISO8859-11", // 0x0B
+  "ISO8859-12", // 0x0C
+  "ISO8859-13", // 0x0D
+  "ISO8859-14", // 0x0E
+  "ISO8859-15", // 0x0F
+};
+
 #define NumEntries(Table) (sizeof(Table) / sizeof(char *))
 
 static const char *SystemCharacterTable = NULL;
@@ -334,6 +353,13 @@ bool SetSystemCharacterTable(const char 
             return true;
          }
       }
+      for (unsigned int i = 0; i < NumEntries(CharacterTables3); i++) {
+         if (CharacterTables3[i] && strcasecmp(CharacterTable, CharacterTables3[i]) == 0) {
+            SystemCharacterTable = CharacterTables3[i];
+            SystemCharacterTableIsSingleByte = true;
+            return true;
+         }
+      }
    } else {
       SystemCharacterTable = NULL;
       SystemCharacterTableIsSingleByte = true;