rpms/vdr-tvonscreen/F-9 02_tvonscreen-1.0-fixes.dpatch, NONE, 1.1 tvonscreen-1.0.141-i18n-1.6.patch, NONE, 1.1 vdr-tvonscreen.spec, 1.3, 1.4

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


Author: vpv

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

Modified Files:
	vdr-tvonscreen.spec 
Added Files:
	02_tvonscreen-1.0-fixes.dpatch 
	tvonscreen-1.0.141-i18n-1.6.patch 
Log Message:
Add patches to fix segfaults and to add new translations


--- 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;
 	

tvonscreen-1.0.141-i18n-1.6.patch:

--- NEW FILE tvonscreen-1.0.141-i18n-1.6.patch ---

This is a semi-automatically created i18n adaptation patch and may contain
errors (such as missing translations). This should only be used as a
temporary measure until the upstream plugin maintainer fixes the plugin
properly according to the instructions in i18n-to-gettext.pl.

Created for Mandriva Linux packaging by Anssi Hannula <anssi at mandriva.org>.


Index: tvonscreen-1.0.141/Makefile
===================================================================
--- tvonscreen-1.0.141/Makefile
+++ tvonscreen-1.0.141/Makefile	2008-04-25 12:12:16.000000000 +0300
@@ -50,7 +50,7 @@
 
 ### The object files (add further files here):
 
-OBJS = $(PLUGIN).o i18n.o magazine.o anyfont.o config.o gfxtools.o timer.o search.o
+OBJS = $(PLUGIN).o  magazine.o anyfont.o config.o gfxtools.o timer.o search.o
 
 ### Implicit rules:
 
@@ -66,9 +66,34 @@
 
 -include $(DEPFILE)
 
+### Internationalization (I18N):
+
+PODIR     = po
+LOCALEDIR = $(VDRDIR)/locale
+I18Npo    = $(wildcard $(PODIR)/*.po)
+I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
+I18Npot   = $(PODIR)/$(PLUGIN).pot
+
+%.mo: %.po
+	msgfmt -c -o $@ $<
+
+$(I18Npot): $(wildcard *.[ch] *.[ch]xx *.cc *.[ch]pp *.hh)
+	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<http://qa.mandriva.com/>' -o $@ $^
+
+%.po: $(I18Npot)
+	msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+	@touch $@
+
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+	@mkdir -p $(dir $@)
+	cp $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmsgs)
+
 ### Targets:
 
-all: libvdr-$(PLUGIN).so
+all: libvdr-$(PLUGIN).so i18n
 
 libvdr-$(PLUGIN).so: $(OBJS)
 	$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
@@ -84,4 +109,5 @@
 	@echo Distribution package created as $(PACKAGE).tgz
 
 clean:
+	@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
 	@-rm -f $(OBJS) $(DEPFILE) *.so *.tar.gz core* *~
Index: tvonscreen-1.0.141/i18n.c
===================================================================
--- tvonscreen-1.0.141/i18n.c
+++ tvonscreen-1.0.141/i18n.c	2008-04-25 12:12:16.000000000 +0300
@@ -1,1271 +0,0 @@
-/*
- * i18n.c: Internationalization
- *
- * See the README file for copyright information and how to reach the author.
- *
- * $Id: i18n.c,v 1.15 2004/11/30 20:08:24 schmitzj Exp $
- *
- */
-
-#include "i18n.h"
-
-const tI18nPhrase tvoPhrases[] = {
-  { "TV-OnScreen", // English
-    "TV-OnScreen", // Deutsch
-    "", // Slovenski
-    "", // Italiano
-    "", // Nederlands
-    "", // Português
-    "", // Français
-    "", // Norsk
-    "TV-ohjelmat", // suomi
-    "", // Polski
-    "", // Español
-    "", // ÅëëçíéêÜ
-    "", // Svenska
-    "", // Romaneste
-    "", // Magyar
-    "", // Català
-#if VDRVERSNUM >= 10302
-    ""  // ÀãááÚØÙ (Russian)
-#if VDRVERSNUM >= 10307
-    "", // Hrvatski (Croatian)
-#if VDRVERSNUM >= 10313
-    "", // Eesti
-#if VDRVERSNUM >= 10316
-    "", // Dansk
-#endif
-#endif
-#endif
-#endif
-  },
-  { "Shows the EPG info in form of a typical TV magazine", // English
-    "", // Deutsch
-    "", // Slovenski
-    "", // Italiano
-    "", // Nederlands
-    "", // Português
-    "", // Français
-    "", // Norsk
-    "TV-ohjelmatiedot (OSD)", // suomi
-    "", // Polski
-    "", // Español
-    "", // ÅëëçíéêÜ
-    "", // Svenska
-    "", // Romaneste
-    "", // Magyar
-    "", // Català
-#if VDRVERSNUM >= 10302
-    ""  // ÀãááÚØÙ (Russian)
-#if VDRVERSNUM >= 10307
-    "", // Hrvatski (Croatian)
-#if VDRVERSNUM >= 10313
-    "", // Eesti
-#if VDRVERSNUM >= 10316
-    "", // Dansk
-#endif
-#endif
-#endif
-#endif
-  },
-  { "o'clock", // English
-    "Uhr", // Deutsch
-    "", // Slovenski
-    "", // Italiano
-    "", // Nederlands
-    "", // Português
-    "", // Français
-    "", // Norsk
-    " ", // suomi (empty space)
-    "", // Polski
-    "", // Español
-    "", // ÅëëçíéêÜ
-    "", // Svenska
-    "", // Romaneste
-    "", // Magyar
-    "", // Català
-#if VDRVERSNUM >= 10302
-    ""  // ÀãááÚØÙ (Russian)
-#if VDRVERSNUM >= 10307
-    "", // Hrvatski (Croatian)
-#if VDRVERSNUM >= 10313
-    "", // Eesti
-#if VDRVERSNUM >= 10316
-    "", // Dansk
-#endif
-#endif
-#endif
-#endif
-  },
-  { "%d-%m", // English
-    "%d.%m.", // Deutsch
-    "", // Slovenski
-    "", // Italiano
-    "", // Nederlands
-    "", // Português
-    "", // Français
-    "", // Norsk
-    "%d.%m.", // suomi
-    "", // Polski
-    "", // Español
-    "", // ÅëëçíéêÜ
-    "", // Svenska
-    "", // Romaneste
-    "", // Magyar
-    "", // Català
-#if VDRVERSNUM >= 10302
-    ""  // ÀãááÚØÙ (Russian)
-#if VDRVERSNUM >= 10307
-    "", // Hrvatski (Croatian)
-#if VDRVERSNUM >= 10313
-    "", // Eesti
-#if VDRVERSNUM >= 10316
-    "", // Dansk
-#endif
-#endif
-#endif
-#endif
-  },
-  { "Press 1 for help", // English
-    "Für Hilfe die 1 drücken", // Deutsch
[...1694 lines suppressed...]
+"Content-Transfer-Encoding: 8bit\n"
+
+#: config.c:135
+msgid "show channel logos"
+msgstr ""
+
+#: config.c:137
+msgid "show channel names"
+msgstr ""
+
+#: config.c:139
+msgid "show logos in black&white"
+msgstr ""
+
+#: config.c:141
+msgid "enable color problem work around"
+msgstr ""
+
+#: config.c:144
+msgid "use XL fonts"
+msgstr ""
+
+#: config.c:146
+msgid "hide info line"
+msgstr ""
+
+#: config.c:149
+msgid "user point in time 1 (Key 4)"
+msgstr ""
+
+#: config.c:151
+msgid "user point in time 2 (Key 5)"
+msgstr ""
+
+#: config.c:153
+msgid "user point in time 3 (Key 6)"
+msgstr ""
+
+#: config.c:156
+msgid "jump to next day point if ago"
+msgstr ""
+
+#: config.c:159
+msgid "Show search item itself"
+msgstr ""
+
+#: magazine.c:296
+msgid "Press 1 for help"
+msgstr ""
+
+#: magazine.c:325 magazine.c:332
+#, c-format
+msgid "%d-%m"
+msgstr ""
+
+#: magazine.c:346
+msgid "o'clock"
+msgstr ""
+
+#: magazine.c:432
+msgid "Timer conflict!"
+msgstr ""
+
+#: magazine.c:736
+msgid "NORMAL MODE:"
+msgstr ""
+
+#: magazine.c:737
+msgid ""
+"arrows\n"
+"\tmove view"
+msgstr ""
+
+#: magazine.c:738
+msgid ""
+"back\n"
+"\tclose TV OnScreen"
+msgstr ""
+
+#: magazine.c:739
+msgid ""
+"red/blue\n"
+"\t-/+ one day"
+msgstr ""
+
+#: magazine.c:740
+msgid ""
+"green/yellow\n"
+"\tone page left/right"
+msgstr ""
+
+#: magazine.c:741
+msgid ""
+"7/9\n"
+"\tone page left/right"
+msgstr ""
+
+#: magazine.c:742
+msgid ""
+"8\n"
+"\tgoto current channel"
+msgstr ""
+
+#: magazine.c:743
+msgid ""
+"0\n"
+"\tgoto now"
+msgstr ""
+
+#: magazine.c:744
+msgid ""
+"4/5/6\n"
+"\tgoto configured time"
+msgstr ""
+
+#: magazine.c:745
+msgid ""
+"ok\n"
+"\tswitch to edit mode\n"
+msgstr ""
+
+#: magazine.c:746
+msgid "EDIT MODE:"
+msgstr ""
+
+#: magazine.c:747
+msgid ""
+"back\n"
+"\tback to normal mode"
+msgstr ""
+
+#: magazine.c:748
+msgid ""
+"arrows\n"
+"\tmove selected schedule"
+msgstr ""
+
+#: magazine.c:749
+msgid ""
+"record\n"
+"\tcreate timer"
+msgstr ""
+
+#: magazine.c:750
+msgid ""
+"ok\n"
+"\tshow details"
+msgstr ""
+
+#: magazine.c:959
+msgid "Added AutoTimer to vdradmin."
+msgstr ""
+
+#: magazine.c:963
+msgid "Startoption 'vdradminfile' not set!"
+msgstr ""
+
+#: search.c:34 timer.c:23
+msgid "Search"
+msgstr ""
+
+#: search.c:42 search.c:55 search.c:101 search.c:118
+msgid "Search for"
+msgstr ""
+
+#: search.c:45 search.c:47 search.c:105 search.c:107 search.c:113
+msgid "Searching..."
+msgstr ""
+
+#: search.c:60 search.c:65 search.c:123 search.c:128
+msgid "Back"
+msgstr ""
+
+#: search.c:60 search.c:123
+msgid "Details"
+msgstr ""
+
+#: search.c:60 search.c:123 timer.c:23
+msgid "Record"
+msgstr ""
+
+#: search.c:60 search.c:65
+msgid "in all"
+msgstr ""
+
+#: search.c:64 search.c:127
+msgid "Nothing found!"
+msgstr ""
+
+#: timer.c:23
+msgid "AutoTimer"
+msgstr ""
+
+#: tvonscreen.c:16
+msgid "Shows the EPG info in form of a typical TV magazine"
+msgstr ""
+
+#: tvonscreen.c:17
+msgid "TV-OnScreen"
+msgstr ""


Index: vdr-tvonscreen.spec
===================================================================
RCS file: /cvs/pkgs/rpms/vdr-tvonscreen/F-9/vdr-tvonscreen.spec,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- vdr-tvonscreen.spec	8 Apr 2008 17:58:11 -0000	1.3
+++ vdr-tvonscreen.spec	4 May 2008 20:42:46 -0000	1.4
@@ -5,7 +5,7 @@
 
 Name:           vdr-%{pname}
 Version:        1.0.141
-Release:        3%{?dist}
+Release:        4%{?dist}
 Summary:        Enhanced EPG data viewer for VDR
 
 Group:          Applications/Multimedia
@@ -13,11 +13,15 @@
 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
 # VDR 1.6 compatibility patch
-Patch0:         http://toms-cafe.de/vdr/download/%{pname}-%{version}-1.5.3.diff
+Patch1:         http://toms-cafe.de/vdr/download/%{pname}-%{version}-1.5.3.diff
+# I18n patch from Mandriva
+Patch2:         tvonscreen-1.0.141-i18n-1.6.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
-BuildRequires:  vdr-devel >= 1.6.0
+BuildRequires:  vdr-devel >= 1.6.0 gettext
 Requires:       vdr(abi) = %{apiver}
 
 %description
@@ -29,30 +33,34 @@
 %prep
 %setup -q -n %{pname}-%{version}
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
 sed -i -e 's|^\(.*ConfigDirectory=\).*"logos".*|\1"%{datadir}/logos";|' \
     magazine.c
 sed -i -e 's|<configDir>/plugins/logos|%{datadir}/logos|' README
 iconv -f iso-8859-1 -t utf-8 README > README.utf8 ; mv README.utf8 README
-chmod -x i18n.h
 
 
 %build
-make %{?_smp_mflags} LIBDIR=. VDRDIR=%{_libdir}/vdr all
+make libvdr-%{pname}.so %{?_smp_mflags} LIBDIR=. VDRDIR=%{_libdir}/vdr
 
 
 %install
 rm -rf $RPM_BUILD_ROOT
+make i18n LOCALEDIR=$RPM_BUILD_ROOT%{_datadir}/locale
 install -dm 755 $RPM_BUILD_ROOT%{plugindir}
 install -pm 755 libvdr-%{pname}.so.%{apiver} $RPM_BUILD_ROOT%{plugindir}
 install -Dpm 644 %{SOURCE1} \
     $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr-plugins.d/%{pname}.conf
+%find_lang %{name}
 
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 
-%files
+%files -f %{name}.lang
 %defattr(-,root,root,-)
 %doc COPYING HISTORY README
 %config(noreplace) %{_sysconfdir}/sysconfig/vdr-plugins.d/%{pname}.conf
@@ -60,6 +68,11 @@
 
 
 %changelog
+* Sun May 04 2008 - Ville-Pekka Vainio <vpivaini AT cs.helsinki.fi> 1.0.141-4
+- Add a combined patch from e-tobi, fixes segfaults
+- Add I18n patch from Mandriva, adds fi and de translations, thanks to Anssi
+  Hannula
+
 * Tue Apr 08 2008 - Ville-Pekka Vainio <vpivaini AT cs.helsinki.fi> 1.0.141-3
 - Add VDR 1.6.0 compatibility patch and rebuild against new VDR
 




More information about the fedora-extras-commits mailing list