vdr: Fix build with GCC 4.4.

This commit is contained in:
Michael Tremer
2012-08-19 15:24:52 -04:00
parent 5813003312
commit 07ee61b2f9
3 changed files with 144 additions and 0 deletions

View File

@@ -104,6 +104,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
cd $(DIR_APP)/PLUGINS/src && tar xvf $(DIR_DL)/$(DL_FILE4)
cd $(DIR_APP)/PLUGINS/src && ln -s epgsearch-0.9.24 epgsearch
cd $(DIR_APP) && patch -Np1 -i PLUGINS/src/epgsearch/patches/MainMenuHooks-v1_0.patch
cd $(DIR_APP)/PLUGINS/src/epgsearch && sed -i '/include/a #include <langinfo.h>/' \
epgsearch.c
cd $(DIR_APP)/PLUGINS/src/epgsearch && patch -Np1 < $(DIR_SRC)/src/patches/vdr-plugin-epgsearch-gcc44.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vdr-1.6.0-gcc44-fixes.patch
cd $(DIR_APP) && make VIDEODIR=/var/video plugins $(MAKETUNING) $(EXTRA_MAKE)
cd $(DIR_APP) && make VIDEODIR=/var/video vdr $(MAKETUNING) $(EXTRA_MAKE)
cd $(DIR_APP) && make DFB_SUPPORT=1 FB_SUPPORT=1 VIDIX_SUPPORT=1 $(MAKETUNING) $(EXTRA_MAKE)

View File

@@ -0,0 +1,62 @@
Index: vdr-1.6.0/recording.c
===================================================================
--- vdr-1.6.0.orig/recording.c
+++ vdr-1.6.0/recording.c
@@ -509,8 +509,8 @@ cRecording::cRecording(cTimer *Timer, co
Utf8Strn0Cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH);
Subtitle = SubtitleBuffer;
}
- char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE);
- char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
+ const char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE);
+ const char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
if (macroTITLE || macroEPISODE) {
name = strdup(Timer->File());
name = strreplace(name, TIMERMACRO_TITLE, Title);
@@ -551,7 +551,7 @@ cRecording::cRecording(const char *FileN
sortBuffer = NULL;
fileName = strdup(FileName);
FileName += strlen(VideoDirectory) + 1;
- char *p = strrchr(FileName, '/');
+ const char *p = strrchr(FileName, '/');
name = NULL;
info = new cRecordingInfo;
@@ -1022,7 +1022,8 @@ void cRecordings::DelByName(const char *
if (recording) {
cThreadLock DeletedRecordingsLock(&DeletedRecordings);
Del(recording, false);
- char *ext = strrchr(recording->FileName(), '.');
+ // wtf?
+ char *ext = strrchr(const_cast<char*>(recording->FileName()), '.');
if (ext) {
strncpy(ext, DELEXT, strlen(ext));
recording->fileSizeMB = DirSizeMB(recording->FileName());
Index: vdr-1.6.0/svdrp.c
===================================================================
--- vdr-1.6.0.orig/svdrp.c
+++ vdr-1.6.0/svdrp.c
@@ -736,7 +736,7 @@ void cSVDRP::CmdGRAB(const char *Option)
char *strtok_next;
FileName = strtok_r(p, delim, &strtok_next);
// image type:
- char *Extension = strrchr(FileName, '.');
+ const char *Extension = strrchr(FileName, '.');
if (Extension) {
if (strcasecmp(Extension, ".jpg") == 0 || strcasecmp(Extension, ".jpeg") == 0)
Jpeg = true;
@@ -796,12 +796,12 @@ void cSVDRP::CmdGRAB(const char *Option)
if (FileName) {
if (grabImageDir) {
cString s;
- char *slash = strrchr(FileName, '/');
+ char *slash = strrchr(const_cast<char*>(FileName), '/');
if (!slash) {
s = AddDirectory(grabImageDir, FileName);
FileName = s;
}
- slash = strrchr(FileName, '/'); // there definitely is one
+ slash = strrchr(const_cast<char*>(FileName), '/'); // there definitely is one
*slash = 0;
char *r = realpath(FileName, RealFileName);
*slash = '/';

View File

@@ -0,0 +1,78 @@
diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c
--- vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c 2008-04-13 20:53:44.000000000 +0200
+++ vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c 2009-10-26 20:27:07.000000000 +0100
@@ -742,12 +742,13 @@
{
if (*Option)
{
- char* pipePos = strchr(Option, '|');
+ const char* pipePos = strchr(Option, '|');
if (pipePos)
{
- *pipePos = 0;
- const char* oldName = Option;
- const char* newName = pipePos+1;
+ int index = pipePos - Option;
+ char* oldName = strdup(Option);
+ *(oldName + index) = 0;
+ const char* newName = oldName + index + 1;
if (strlen(oldName) > 0 && strlen(newName) > 0)
{
cChannelGroup *changrp = ChannelGroups.GetGroupByName(Option);
@@ -769,15 +770,18 @@
}
ChannelGroups.Save();
SearchExts.Save();
+ free(oldName);
return cString::sprintf("renamed channel group '%s' to '%s'", oldName, newName);
}
else
{
+ free(oldName);
ReplyCode = 901;
return cString::sprintf("channel group '%s' not defined", Option);
}
}
+ free(oldName);
}
ReplyCode = 901;
return cString("Error in channel group parameters");
diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c vdr-plugin-epgsearch-0.9.24/epgsearchtools.c
--- vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c 2008-04-13 20:53:42.000000000 +0200
+++ vdr-plugin-epgsearch-0.9.24/epgsearchtools.c 2009-10-26 20:27:07.000000000 +0100
@@ -743,7 +743,7 @@
while(tmp)
{
// extract a single line
- char* lf = strchr(tmp, '\n');
+ const char* lf = strchr(tmp, '\n');
char* line = NULL;
if (lf)
line = strndup(tmp, lf-tmp);
diff -urNad vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c vdr-plugin-epgsearch-0.9.24/menu_dirselect.c
--- vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c 2008-04-13 20:53:44.000000000 +0200
+++ vdr-plugin-epgsearch-0.9.24/menu_dirselect.c 2009-10-26 20:27:07.000000000 +0100
@@ -83,7 +83,7 @@
return 1;
do
{
- char* pos = strchr(szDir, '~');
+ const char* pos = strchr(szDir, '~');
if (pos)
{
iLevel++;
diff -urNad vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c
--- vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c 2008-04-28 18:22:31.000000000 +0200
+++ vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c 2009-10-26 20:27:28.000000000 +0100
@@ -565,8 +565,8 @@
if (!isempty(aux))
{
tmpaux = strdup(aux);
- char* begin = strstr(aux, "<epgsearch>");
- char* end = strstr(aux, "</epgsearch>");
+ const char* begin = strstr(aux, "<epgsearch>");
+ const char* end = strstr(aux, "</epgsearch>");
if (begin && end)
{
if (begin == aux) strcpy(tmpaux, ""); else strn0cpy(tmpaux, aux, begin-aux+1);