Crash on first start without setup.conf
Commit Message
In article <4EE366F8.2030104@tvdr.de> you write:
>On 09.12.2011 19:15, Juergen Lock wrote:
>> Hi!
>>
>> (I'm still on 1.7.19 so forgive me if this already has been solved...)
>
>I forgive you ;-)
>
>Actually it has been fixed in version 1.7.20, with an additional
>fix in 1.7.21.
Thanx! :)
This is the patch I merged into FreeBSD ports for now until I get
around to updating to 1.7.22:
That seems to fix the problem for me.
Cheers,
Juergen
@@ -399,7 +399,7 @@ cSetup::cSetup(void)
CurrentChannel = -1;
CurrentVolume = MAXVOLUME;
CurrentDolby = 0;
- // InitialChannel is initialized by constructor
+ InitialChannel = "";
InitialVolume = -1;
ChannelsWrap = 0;
EmergencyExit = 1;
@@ -735,12 +723,14 @@ int main(int argc, char *argv[])
if (!cDevice::WaitForAllDevicesReady(DEVICEREADYTIMEOUT))
dsyslog("not all devices ready after %d seconds", DEVICEREADYTIMEOUT);
- if (isnumber(Setup.InitialChannel)) { // for compatibility with old setup.conf files
- if (cChannel *Channel = Channels.GetByNumber(atoi(Setup.InitialChannel)))
- Setup.InitialChannel = Channel->GetChannelID().ToString();
+ if (*Setup.InitialChannel) {
+ if (isnumber(Setup.InitialChannel)) { // for compatibility with old setup.conf files
+ if (cChannel *Channel = Channels.GetByNumber(atoi(Setup.InitialChannel)))
+ Setup.InitialChannel = Channel->GetChannelID().ToString();
+ }
+ if (cChannel *Channel = Channels.GetByChannelID(tChannelID::FromString(Setup.InitialChannel)))
+ Setup.CurrentChannel = Channel->Number();
}
- if (cChannel *Channel = Channels.GetByChannelID(tChannelID::FromString(Setup.InitialChannel)))
- Setup.CurrentChannel = Channel->Number();
if (Setup.InitialVolume >= 0)
Setup.CurrentVolume = Setup.InitialVolume;
Channels.SwitchTo(Setup.CurrentChannel);