rpms/vdr-tvonscreen/F-8 02_tvonscreen-1.0-fixes.dpatch, NONE, 1.1 vdr-tvonscreen.spec, 1.1, 1.2

Ville-Pekka Vainio (vpv) fedora-extras-commits at redhat.com
Sun May 4 20:57:13 UTC 2008


Author: vpv

Update of /cvs/pkgs/rpms/vdr-tvonscreen/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14770

Modified Files:
	vdr-tvonscreen.spec 
Added Files:
	02_tvonscreen-1.0-fixes.dpatch 
Log Message:
Add the combined patch which went into F-9 and devel as well


--- NEW FILE 02_tvonscreen-1.0-fixes.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 02_tvonscreen-1.0-fixes.dpatch by apex at vdrportal.de
## http://vdrportal.de/board/thread.php?postid=517272#post517272
##
## Contains following patches:
## - http://toms-cafe.de/vdr/download/tvonscreen-0.7.0-fix-noepg.diff
##   (fixes segmentation fault without any epg data)
## - http://vdrportal.de/board/thread.php?postid=401733#post401733
##   (fixes segmentation fault with empty columns)
## - http://www.vdr-portal.de/board/thread.php?postid=681720#post681720
##   (fixes segfault when switching to edit mode)
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fixes segmentation faults.

@DPATCH@
diff -urNad vdr-plugin-tvonscreen-1.0.141~/magazine.c vdr-plugin-tvonscreen-1.0.141/magazine.c
--- vdr-plugin-tvonscreen-1.0.141~/magazine.c	2006-06-18 15:59:36.000000000 +0200
+++ vdr-plugin-tvonscreen-1.0.141/magazine.c	2008-04-13 18:11:49.000000000 +0200
@@ -458,6 +458,9 @@
 }
 const cEvent *magazine::getNext(const cSchedule *s,const cEvent *e)
 {
+	if (e == NULL)
+		return NULL;
+
 	const cEvent *pe = NULL;
 	time_t ref = e->StartTime();
 
@@ -480,6 +483,9 @@
 }
 const cEvent *magazine::getPrev(const cSchedule *s,const cEvent *e)
 {
+	if (e == NULL)
+		return NULL;
+
 	const cEvent *pe = NULL;
 	time_t ref = e->StartTime();
 	time_t delta = INT_MAX;
@@ -1077,9 +1083,9 @@
 	{
 		state = cOsdObject::ProcessKey(Key);
 	
-		if (state == osUnknown)
+		if (state == osUnknown && schedArrayNum>currentFirst)
 		{
-			if (curmode==SHOW && schedArrayNum>currentFirst)
+			if (curmode==SHOW)
 			{
 				switch (Key & ~k_Repeat)
 				{
@@ -1111,6 +1117,8 @@
 						currentFirst++;
 						if (currentFirst>schedArrayNum-3)
 							currentFirst=schedArrayNum-3;
+						if (currentFirst<0)
+							currentFirst=0;
 						output();
 						break;
 					case kUp:
@@ -1145,6 +1153,8 @@
 						currentFirst+=3;
 						if (currentFirst>schedArrayNum-3)
 							currentFirst=schedArrayNum-3;
+						if (currentFirst<0)
+							currentFirst=0;
 						output();
 						break;
 					case k8: // zum aktuellen Sender
@@ -1206,14 +1216,17 @@
 				{
 					case kOk:
 						{
-							delete osd;
-							osd=NULL;
 							cEvent **ev=ev4ch(EDIT_curChannel);
-							me=new tvOcMenuEvent(ev[EDIT_curEVI]);
-							me->Display();
-							curmode=SHOW;
-							EDIT_curEvent=0;
-							return osContinue;
+							if (ev[EDIT_curEVI] != NULL)
+							{
+								delete osd;
+								osd=NULL;
+								me=new tvOcMenuEvent(ev[EDIT_curEVI]);
+								me->Display();
+								curmode=SHOW;
+								EDIT_curEvent=0;
+								return osContinue;
+							}
 						}
 						break;
             		case kBack:
@@ -1238,11 +1251,15 @@
 							EDIT_curChannel++;
 						if (EDIT_curChannel>schedArrayNum-1)
 							EDIT_curChannel=schedArrayNum-1;
+						if (EDIT_curChannel<0)
+							EDIT_curChannel=0;
 						if (EDIT_curChannel>currentFirst+2)
 						{
 							currentFirst++;
 							if (currentFirst>schedArrayNum-3)
 								currentFirst=schedArrayNum-3;
+							if (currentFirst<0)
+								currentFirst=0;
 							EDIT_curChannel=currentFirst+2;
 						}
 						outputLR();
@@ -1343,17 +1360,20 @@
 						break;			*/
 				case kRecord:
 					{
-						delete osd;
-						osd=NULL;
 						cEvent **ev=ev4ch(EDIT_curChannel);
-						cTimer *timer = new cTimer(ev[EDIT_curEVI]);
-						cTimer *t = Timers.GetTimer(timer);
-						if (t)
+						if (ev[EDIT_curEVI] != NULL)
 						{
-							delete timer;
-							timer = t;
+							delete osd;
+							osd=NULL;
+							cTimer *timer = new cTimer(ev[EDIT_curEVI]);
+							cTimer *t = Timers.GetTimer(timer);
+							if (t)
+							{
+								delete timer;
+								timer = t;
+							}
+							met=new cMenuEditTimer(timer, !t);
 						}
-						met=new cMenuEditTimer(timer, !t);
 					}
 					break;
 					default:
diff -urNad vdr-plugin-tvonscreen-1.0.141~/magazine.h vdr-plugin-tvonscreen-1.0.141/magazine.h
--- vdr-plugin-tvonscreen-1.0.141~/magazine.h	2006-06-18 15:59:36.000000000 +0200
+++ vdr-plugin-tvonscreen-1.0.141/magazine.h	2008-04-13 18:12:15.000000000 +0200
@@ -70,7 +70,7 @@
 	enum modes {SHOW,EDIT};
 	enum modes curmode;
 
-	unsigned short EDIT_curEvent;
+	int EDIT_curEvent;
 	int EDIT_curChannel;
 	int EDIT_curEVI;
 	


Index: vdr-tvonscreen.spec
===================================================================
RCS file: /cvs/pkgs/rpms/vdr-tvonscreen/F-8/vdr-tvonscreen.spec,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- vdr-tvonscreen.spec	21 Dec 2007 19:53:57 -0000	1.1
+++ vdr-tvonscreen.spec	4 May 2008 20:56:36 -0000	1.2
@@ -5,7 +5,7 @@
 
 Name:           vdr-%{pname}
 Version:        1.0.141
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Enhanced EPG data viewer for VDR
 
 Group:          Applications/Multimedia
@@ -13,6 +13,8 @@
 URL:            http://www.js-home.org/vdr/tvonscreen/
 Source0:        http://www.js-home.org/vdr/tvonscreen/%{name}-%{version}.tar.gz
 Source1:        %{name}.conf
+# Fixes several bugs, from e-tobi
+Patch0:         02_tvonscreen-1.0-fixes.dpatch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  vdr-devel >= 1.4.1
@@ -26,6 +28,7 @@
 
 %prep
 %setup -q -n %{pname}-%{version}
+%patch0 -p1
 sed -i -e 's|^\(.*ConfigDirectory=\).*"logos".*|\1"%{datadir}/logos";|' \
     magazine.c
 sed -i -e 's|<configDir>/plugins/logos|%{datadir}/logos|' README
@@ -57,6 +60,9 @@
 
 
 %changelog
+* Sun May 04 2008 - Ville-Pekka Vainio <vpivaini AT cs.helsinki.fi> 1.0.141-2
+- Add a combined patch from e-tobi, fixes segfaults
+
 * Wed Dec 21 2007 Ville-Pekka Vainio <vpivaini AT cs.helsinki.fi> - 1.0.141-1
 - Improve description
 - Bump release for the first Fedora build




More information about the scm-commits mailing list