From fe37211da0b543271d77754faa50ef54dbe4fe52 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 27 Aug 2005 09:29:30 +0200 Subject: [PATCH] Fixed detecting short channel names for "Kabel Deutschland" --- CONTRIBUTORS | 1 + HISTORY | 2 ++ sdt.c | 11 +++++++---- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index d43a2192..3d78a785 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1214,6 +1214,7 @@ Marco Schl is waiting for improving resetting CAM connections for fixing handling EPG data for time shifted events + for fixing detecting short channel names for "Kabel Deutschland" Jürgen Schmitz for reporting a bug in displaying the current channel when switching via the SVDRP diff --git a/HISTORY b/HISTORY index c2e39042..91e86e66 100644 --- a/HISTORY +++ b/HISTORY @@ -3732,3 +3732,5 @@ Video Disk Recorder Revision History report that lead to this). - Removed the TUNER_LOCK_TIMEOUT in cDevice::AttachReceiver() since it caused more trouble than it fixed. +- Fixed detecting short channel names for "Kabel Deutschland", who uses a comma + as delimiter (thanks to Marco Schlüßler). diff --git a/sdt.c b/sdt.c index dcf6dc1b..74c55032 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.14 2005/05/14 09:39:46 kls Exp $ + * $Id: sdt.c 1.15 2005/08/27 09:27:47 kls Exp $ */ #include "sdt.h" @@ -64,11 +64,14 @@ void cSdtFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length 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, '>'); + // standard, but rather go their own way and use "name>short name" or + // "name, short name": + char *p = strchr(pn, '>'); // fix for UPC Wien + if (!p) + p = strchr(pn, ','); // fix for "Kabel Deutschland" if (p && p > pn) { *p++ = 0; - strcpy(ShortNameBuf, p); + strcpy(ShortNameBuf, skipspace(p)); } } sd->providerName.getText(ProviderNameBuf, sizeof(ProviderNameBuf));