From f1603e91280feb26051537b2287a69a23a96fc1e Mon Sep 17 00:00:00 2001
From: Klaus Schmidinger <vdr@tvdr.de>
Date: Mon, 3 Dec 2012 14:13:12 +0100
Subject: Fixed handling lowercase polarization characters in channel
 definitions if no DiSEqC is used

---
 CONTRIBUTORS |  6 ++++++
 HISTORY      |  2 ++
 dvbdevice.c  | 10 +++++-----
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 2b408619..0c37f847 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -229,6 +229,8 @@ Stefan Huelswitt <s.huelswitt@gmx.de>
  for a patch that was used to implement the --localedir option
  for reporting a problem with updating CA descriptors in transfer mode on full
  featured DVB cards
+ for pointing out a bug in handling lowercase polarization characters in channel
+ definitions if no DiSEqC is used
 
 Ulrich R�der <roeder@efr-net.de>
  for pointing out that there are channels that have a symbol rate higher than 27500
@@ -2986,3 +2988,7 @@ S
 
 Peter M�nster <pmlists@free.fr>
  for fixing 'make install' to not overwrite existing configuration files
+
+Mike Hay <mike.hay@linenshorts.com>
+ for reporting a problem with handling the case of the polarization character in
+ channel definitions if no DiSEqC is used
diff --git a/HISTORY b/HISTORY
index 238cec13..e457499c 100644
--- a/HISTORY
+++ b/HISTORY
@@ -7364,3 +7364,5 @@ Video Disk Recorder Revision History
 - Fixed some #include statements in plugins to use <vdr/...> instead of "vdr/..."
   (thanks to Lars Hanisch).
 - Fixed some spellings in osd.h and svdrp.c (thanks to Ville Skytt�).
+- Fixed handling lowercase polarization characters in channel definitions if no DiSEqC
+  is used (reported by Mike Hay, actual bug pointed out by Stefan Huelswitt).
diff --git a/dvbdevice.c b/dvbdevice.c
index d3ade755..43e8544a 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: dvbdevice.c 2.74 2012/10/07 11:11:30 kls Exp $
+ * $Id: dvbdevice.c 2.75 2012/12/03 14:07:01 kls Exp $
  */
 
 #include "dvbdevice.h"
@@ -261,16 +261,16 @@ bool cDvbTransponderParameters::Parse(const char *s)
           case 'C': s = ParseParameter(s, coderateH, CoderateValues); break;
           case 'D': s = ParseParameter(s, coderateL, CoderateValues); break;
           case 'G': s = ParseParameter(s, guard, GuardValues); break;
-          case 'H': polarization = *s++; break;
+          case 'H': polarization = 'H'; s++; break;
           case 'I': s = ParseParameter(s, inversion, InversionValues); break;
-          case 'L': polarization = *s++; break;
+          case 'L': polarization = 'L'; s++; break;
           case 'M': s = ParseParameter(s, modulation, ModulationValues); break;
           case 'O': s = ParseParameter(s, rollOff, RollOffValues); break;
           case 'P': s = ParseParameter(s, plpId); break;
-          case 'R': polarization = *s++; break;
+          case 'R': polarization = 'R'; s++; break;
           case 'S': s = ParseParameter(s, system, SystemValuesSat); break; // we only need the numerical value, so Sat or Terr doesn't matter
           case 'T': s = ParseParameter(s, transmission, TransmissionValues); break;
-          case 'V': polarization = *s++; break;
+          case 'V': polarization = 'V'; s++; break;
           case 'Y': s = ParseParameter(s, hierarchy, HierarchyValues); break;
           default: esyslog("ERROR: unknown parameter key '%c'", *s);
                    return false;
-- 
cgit v1.2.3