]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
strip channel names of trailing and leading whitespaces
authorAndreas Öman <andreas@lonelycoder.com>
Thu, 6 Dec 2007 15:26:06 +0000 (15:26 +0000)
committerAndreas Öman <andreas@lonelycoder.com>
Thu, 6 Dec 2007 15:26:06 +0000 (15:26 +0000)
dvb.c

diff --git a/dvb.c b/dvb.c
index 19ec14d01af941977c06af0121f1f7a7d6336fa1..54c9a0d69b4c65fb520472b37a7af7845825d361 100644 (file)
--- a/dvb.c
+++ b/dvb.c
@@ -746,9 +746,9 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
   uint8_t dtag, dlen;
 
   char provider[256];
-  char chname[256];
+  char chname0[256], *chname;
   uint8_t stype;
-  int ret = 0;
+  int ret = 0, l;
 
   if(len < 8)
     return -1;
@@ -779,7 +779,9 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
       break;
 
     stype = 0;
-    
+
+    chname = NULL;
+
     while(dllen > 2) {
       dtag = ptr[0];
       dlen = ptr[1];
@@ -793,15 +795,27 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
       case DVB_DESC_SERVICE:
        if(dvb_desc_service(ptr, dlen, &stype,
                            provider, sizeof(provider),
-                           chname, sizeof(chname)) < 0)
+                           chname0, sizeof(chname0)) < 0) {
          stype = 0;
+       } else {
+         chname = chname0;
+         /* Some providers insert spaces */
+         while(*chname <= 32 && *chname != 0)
+           chname++;
+
+         l = strlen(chname);
+         while(l > 1 && chname[l - 1] <= 32)
+           l--;
+
+       }
        break;
       }
 
       len -= dlen; ptr += dlen; dllen -= dlen;
     }
 
-    switch(stype) {
+    
+    if(chname != NULL) switch(stype) {
 
     case DVB_ST_SDTV:
     case DVB_ST_HDTV: