From d08a134e8d0668ba3961041b02297d308e2f9f93 Mon Sep 17 00:00:00 2001
From: Christian Wieninger <cwieninger (at) gmx (dot) de>
Date: Thu, 20 Mar 2008 19:49:12 +0100
Subject: fix for #357 and #410

---
 pages/searchresults.ecpp |  6 ++++--
 tools.cpp                | 16 ++++++++++------
 2 files changed, 14 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()) : "");
diff --git a/tools.cpp b/tools.cpp
index 1839f6b..3a80ff7 100644
--- a/tools.cpp
+++ b/tools.cpp
@@ -17,12 +17,16 @@ 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;
+        string line;
+        if ( !getline( is, line ) ) {
+                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 {
-- 
cgit v1.2.3