polarization character case in channels.conf

Message ID 509C0B70.20506@gmx.de
State New
Headers

Commit Message

Stefan Huelswitt Nov. 8, 2012, 7:43 p.m. UTC
  Hi,

I can confirm this problem, at least in 1.7.27 (which I'm using at the 
moment). I use the attached patch to resolve it.

Am 08.11.2012 10:19, schrieb Klaus Schmidinger:
>>> Well, there is a toupper() in cDvbTransponderParameters::Parse(), so
>>> I would expect that all characters can be given in either upper- or
>>> lowercase.

Right, but the toupper() is only in the comparision, but it passes the 
original (lowercase) value. And later during tuning the comparision fails.

Regards.
  

Comments

Klaus Schmidinger Nov. 8, 2012, 8:14 p.m. UTC | #1
On 08.11.2012, at 20:43, Stefan Huelswitt <s.huelswitt@gmx.de> wrote:

> Hi,
> 
> I can confirm this problem, at least in 1.7.27 (which I'm using at the moment). I use the attached patch to resolve it.
> 
> Am 08.11.2012 10:19, schrieb Klaus Schmidinger:
>>>> Well, there is a toupper() in cDvbTransponderParameters::Parse(), so
>>>> I would expect that all characters can be given in either upper- or
>>>> lowercase.
> 
> Right, but the toupper() is only in the comparision, but it passes the original (lowercase) value. And later during tuning the comparision fails.

Ah, now I see why it works here - I'm using DiSEqC. Like apparently almost
everybody else, otherwise this problem should have surfaced much earlier ;-)

Klaus
  

Patch

diff -uN -x .dependencies -x vdr.pc -x Make.config -x '*.o' -x '*.rej' vdr-1.7.27-orig/dvbdevice.c vdr-current-1.7.27/dvbdevice.c
--- vdr-1.7.27-orig/dvbdevice.c	2012-03-25 12:41:45.000000000 +0200
+++ vdr-current-1.7.27/dvbdevice.c	2012-07-21 19:12:57.542055052 +0200
@@ -769,7 +771,7 @@ 
            frequency -= Setup.LnbFrequHi;
            tone = SEC_TONE_ON;
            }
-        int volt = (dtp.Polarization() == 'V' || dtp.Polarization() == 'R') ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18;
+        int volt = (dtp.Polarization() == 'V' || dtp.Polarization() == 'R' || dtp.Polarization() == 'v' || dtp.Polarization() == 'r') ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18;
         if (GetBondedMaster() != this) {
            tone = SEC_TONE_OFF;
            volt = SEC_VOLTAGE_13;