diff options
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.diff | 151 |
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; + |