You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
4.1 KiB
152 lines
4.1 KiB
#! /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;
|
|
|