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;
|