Merge branch 'bug_274_disable_fast_winding_for_non_ts' into experimental
[enigma2.git] / lib / dvb / epgcache.cpp
index 9abd554e0b716b2de90e662eaa28a60c9f0f27f3..f80e1775d5fed8aa998cfa0e499f9bdf5454b373 100644 (file)
@@ -2668,7 +2668,7 @@ void eEPGCache::privateSectionRead(const uniqueEPGKey &current_service, const __
                        }
                }
        }
-       ASSERT(pdescr <= &descriptors[65])
+       ASSERT(pdescr <= &descriptors[65]);
        __u8 event[4098];
        eit_event_struct *ev_struct = (eit_event_struct*) event;
        ev_struct->running_status = 0;
@@ -2811,6 +2811,7 @@ void eEPGCache::channel_data::timeMHW2DVB( int minutes, u_char *return_time)
 void eEPGCache::channel_data::timeMHW2DVB( u_char day, u_char hours, u_char minutes, u_char *return_time)
 // For date plus time of day
 {
+       char tz_saved[1024];
        // Remove offset in mhw time.
        __u8 local_hours = hours;
        if ( hours >= 16 )
@@ -2823,6 +2824,8 @@ void eEPGCache::channel_data::timeMHW2DVB( u_char day, u_char hours, u_char minu
        time_t dt = ::time(0);
 
        char *old_tz = getenv( "TZ" );
+       if (old_tz)
+               strcpy(tz_saved, old_tz);
        putenv("TZ=CET-1CEST,M3.5.0/2,M10.5.0/3");
        tzset();
 
@@ -2845,7 +2848,7 @@ void eEPGCache::channel_data::timeMHW2DVB( u_char day, u_char hours, u_char minu
        if ( old_tz == NULL )
                unsetenv( "TZ" );
        else
-               putenv( old_tz );
+               setenv("TZ", tz_saved, 1);
        tzset();
 
        // Calculate MJD according to annex in ETSI EN 300 468