summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-plugins/vdr-tvonscreen/files/vdr-tvonscreen-1.0.141-fixes.diff')
-rw-r--r--media-plugins/vdr-tvonscreen/files/vdr-tvonscreen-1.0.141-fixes.diff151
1 files changed, 151 insertions, 0 deletions
diff --git a/media-plugins/vdr-tvonscreen/files/vdr-tvonscreen-1.0.141-fixes.diff b/media-plugins/vdr-tvonscreen/files/vdr-tvonscreen-1.0.141-fixes.diff
new file mode 100644
index 000000000000..43f1bc6e4992
--- /dev/null
+++ b/media-plugins/vdr-tvonscreen/files/vdr-tvonscreen-1.0.141-fixes.diff
@@ -0,0 +1,151 @@
+#! /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;
+