DESC_LENGTH (event_descriptor)) {
eventname_tmp =
- get_encoding_and_convert (eventname, eventname_length),
- eventdescription_tmp =
+ get_encoding_and_convert (eventname, eventname_length);
+ eventdescription_tmp =
get_encoding_and_convert (eventdescription,
eventdescription_length);
firstbyte = (guint8) text[0];
- if (firstbyte == 0x01) {
- encoding = g_strdup ("iso8859-5");
- *start_text = 1;
- *is_multibyte = FALSE;
- } else if (firstbyte == 0x02) {
- encoding = g_strdup ("iso8859-6");
- *start_text = 1;
- *is_multibyte = FALSE;
- } else if (firstbyte == 0x03) {
- encoding = g_strdup ("iso8859-7");
- *start_text = 1;
- *is_multibyte = FALSE;
- } else if (firstbyte == 0x04) {
- encoding = g_strdup ("iso8859-8");
- *start_text = 1;
- *is_multibyte = FALSE;
- } else if (firstbyte == 0x05) {
- encoding = g_strdup ("iso8859-9");
+ /* ETSI EN 300 468, "Selection of character table" */
+ if (firstbyte <= 0x0B) {
+ encoding = g_strdup_printf ("iso8859-%u", firstbyte + 4);
*start_text = 1;
*is_multibyte = FALSE;
} else if (firstbyte >= 0x20) {
DESC_LENGTH (event_descriptor)) {
eventname_tmp =
- get_encoding_and_convert (eventname, eventname_length),
- eventdescription_tmp =
+ get_encoding_and_convert (eventname, eventname_length);
+ eventdescription_tmp =
get_encoding_and_convert (eventdescription,
eventdescription_length);
firstbyte = (guint8) text[0];
- if (firstbyte == 0x01) {
- encoding = g_strdup ("iso8859-5");
- *start_text = 1;
- *is_multibyte = FALSE;
- } else if (firstbyte == 0x02) {
- encoding = g_strdup ("iso8859-6");
- *start_text = 1;
- *is_multibyte = FALSE;
- } else if (firstbyte == 0x03) {
- encoding = g_strdup ("iso8859-7");
- *start_text = 1;
- *is_multibyte = FALSE;
- } else if (firstbyte == 0x04) {
- encoding = g_strdup ("iso8859-8");
- *start_text = 1;
- *is_multibyte = FALSE;
- } else if (firstbyte == 0x05) {
- encoding = g_strdup ("iso8859-9");
+ /* ETSI EN 300 468, "Selection of character table" */
+ if (firstbyte <= 0x0B) {
+ encoding = g_strdup_printf ("iso8859-%u", firstbyte + 4);
*start_text = 1;
*is_multibyte = FALSE;
} else if (firstbyte >= 0x20) {