diff -Naur vdr-1.5.8.org/eit.c vdr-1.5.8/eit.c --- vdr-1.5.8.org/eit.c 2009-01-09 19:30:34.111620453 -0500 +++ vdr-1.5.8/eit.c 2009-01-09 20:44:48.235688219 -0500 @@ -112,6 +112,7 @@ SI::Descriptor *d; SI::DishExtendedEventDescriptor *DishExtendedEventDescriptor = NULL; SI::DishShortEventDescriptor *DishShortEventDescriptor = NULL; + SI::DishShortEventDescriptor *DishShortText = NULL; SI::ExtendedEventDescriptors *ExtendedEventDescriptors = NULL; SI::ShortEventDescriptor *ShortEventDescriptor = NULL; cLinkChannels *LinkChannels = NULL; @@ -126,6 +127,18 @@ SI::DishExtendedEventDescriptor *sed = (SI::DishExtendedEventDescriptor *)d; if (!DishExtendedEventDescriptor) { delete DishExtendedEventDescriptor; + if (!DishShortText) { + const unsigned char *data = sed->name.getData().getData(0); + int len = sed->name.getLength(); + for (int i = 0; i < len; i++) { + if (data[i] == 0x0D) { + DishShortText = new SI::DishShortEventDescriptor(Tid); + DishShortText->name.setData(sed->name.getData(), i); + sed->name.setData(sed->name.getData().operator+(i + 1), len - i - 1); + break; + } + } + } DishExtendedEventDescriptor = sed; d = NULL; // so that it is not deleted } @@ -139,6 +152,17 @@ UseExtendedEventDescriptor = true; } if (UseExtendedEventDescriptor) { + if (ShortEventDescriptor && ShortEventDescriptor->text.getLength() == 0) { + const unsigned char *data = eed->text.getData().getData(0); + int len = eed->text.getLength(); + for (int i = 0; i < len; i++) { + if (data[i] == 0x0D) { + ShortEventDescriptor->text.setData(eed->text.getData(), i); + eed->text.setData(eed->text.getData().operator+(i + 1), len - i - 1); + break; + } + } + } ExtendedEventDescriptors->Add(eed); d = NULL; // so that it is not deleted } @@ -263,6 +287,10 @@ else if (DishShortEventDescriptor) { char buffer[256]; pEvent->SetTitle(DishShortEventDescriptor->name.getText(buffer, sizeof(buffer))); + if (DishShortText) { + pEvent->SetShortText(DishShortText->name.getText(buffer, sizeof(buffer))); + delete DishShortText; + } } else if (!HasExternalData) { pEvent->SetTitle(NULL);