diff options
author | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2008-03-23 00:24:16 +0100 |
---|---|---|
committer | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2008-03-23 00:24:16 +0100 |
commit | 0f276e51c7dbf0e36baf35823f8b17163d094b39 (patch) | |
tree | 0d7343f5e75b9f7ced6e362121bd55cd77b47864 | |
parent | 421c0f4b839309ef136aa22d912f58519e10e274 (diff) | |
parent | a69f5f5873c2843780b9779f5eccf6e2a692da80 (diff) | |
download | vdr-plugin-live-0f276e51c7dbf0e36baf35823f8b17163d094b39.tar.gz vdr-plugin-live-0f276e51c7dbf0e36baf35823f8b17163d094b39.tar.bz2 |
Merge branch 'master' into devel
-rw-r--r-- | pages/searchresults.ecpp | 6 | ||||
-rw-r--r-- | tools.cpp | 35 |
2 files changed, 33 insertions, 8 deletions
diff --git a/pages/searchresults.ecpp b/pages/searchresults.ecpp index dce7520..0cf1e2c 100644 --- a/pages/searchresults.ecpp +++ b/pages/searchresults.ecpp @@ -61,8 +61,10 @@ bool logged_in(false); string current_day = ""; for (SearchResults::iterator result = results.begin(); result != results.end(); ++result) { - string channelname = Channels.GetByChannelID(result->Channel())->Name(); - int channelnr = Channels.GetByChannelID(result->Channel())->Number(); + cChannel* channel = Channels.GetByChannelID(result->Channel()); + if (!channel) continue; + string channelname = channel->Name(); + int channelnr = channel->Number(); string start(result->StartTime() ? FormatDateTime(tr("%I:%M %p"), result->StartTime()) : ""); string end(result->StopTime() ? FormatDateTime(tr("%I:%M %p"), result->StopTime()) : ""); string day(result->StartTime() ? FormatDateTime(tr("%A, %b %d %Y"), result->StartTime()) : ""); @@ -17,12 +17,35 @@ using namespace tnt; istream& operator>>( istream& is, tChannelID& ret ) { - if ( is.rdbuf()->in_avail() > 0 ) { - string line; - if ( !getline( is, line ) || ( !line.empty() && !( ret = tChannelID::FromString( line.c_str() ) ).Valid() ) ) - is.setstate( ios::badbit ); - } - return is; + /* alternativ implementation + string line; + if ( !getline( is, line ) ) { + if ( !is.eof() ) + is.setstate( ios::badbit ); + else + is.clear(); + return is; + } + if ( !line.empty() && !( ret = tChannelID::FromString( line.c_str() ) ).Valid() ) + is.setstate( ios::badbit ); + return is; + */ + + string line; + if (!getline( is, line ) ) { + if (0 == is.gcount()) { + is.clear(is.rdstate() & ~ios::failbit); + return is; + } + if (!is.eof()) { + is.setstate( ios::badbit ); + return is; + } + } + + if ( !line.empty() && !( ret = tChannelID::FromString( line.c_str() ) ).Valid() ) + is.setstate( ios::badbit ); + return is; } namespace vdrlive { |