summaryrefslogtreecommitdiff
path: root/sdt.c
diff options
context:
space:
mode:
Diffstat (limited to 'sdt.c')
-rw-r--r--sdt.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sdt.c b/sdt.c
index 8bb70092..dcf6dc1b 100644
--- a/sdt.c
+++ b/sdt.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: sdt.c 1.13 2004/10/31 12:10:20 kls Exp $
+ * $Id: sdt.c 1.14 2005/05/14 09:39:46 kls Exp $
*/
#include "sdt.h"
@@ -62,6 +62,15 @@ void cSdtFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
sd->serviceName.getText(NameBuf, ShortNameBuf, sizeof(NameBuf), sizeof(ShortNameBuf));
char *pn = compactspace(NameBuf);
char *ps = compactspace(ShortNameBuf);
+ if (!*ps && cSource::IsCable(Source())) {
+ // Some cable providers don't mark short channel names according to the
+ // standard, but rather go their own way and use "name>short name":
+ char *p = strchr(pn, '>');
+ if (p && p > pn) {
+ *p++ = 0;
+ strcpy(ShortNameBuf, p);
+ }
+ }
sd->providerName.getText(ProviderNameBuf, sizeof(ProviderNameBuf));
char *pp = compactspace(ProviderNameBuf);
if (channel) {