From d495ed1a3e51fbb0fa0704cdb048a385be2b6a9b Mon Sep 17 00:00:00 2001
From: Klaus Schmidinger <kls (at) cadsoft (dot) de>
Date: Sun, 17 Sep 2006 18:00:00 +0200
Subject: [PATCH] Version 1.4.2-3 - Added --remove-destination to the 'cp'
 command for binaries in the Makefiles of   the plugins (thanks to Rolf
 Ahrenberg). - The 'skincurses' plugin now adjusts the size of the OSD to the
 size of the console   window. - Fixed deleting expired VPS timers (under
 certain conditions a timer could have been   deleted before it even started
 recording). - Updated the Hungarian language texts (thanks to Istvan
 Koenigsberger and Guido Josten). - Fixed handling video directory updates in
 case the timestamp of the .update file   is in the future (thanks to Petri
 Hintukainen).

---
 CONTRIBUTORS                        |   4 +
 HISTORY                             |  12 +++
 PLUGINS/src/hello/Makefile          |   4 +-
 PLUGINS/src/osddemo/Makefile        |   4 +-
 PLUGINS/src/servicedemo/Makefile    |   6 +-
 PLUGINS/src/skincurses/HISTORY      |   4 +
 PLUGINS/src/skincurses/Makefile     |   4 +-
 PLUGINS/src/skincurses/skincurses.c |  17 +--
 PLUGINS/src/sky/Makefile            |   4 +-
 PLUGINS/src/status/Makefile         |   4 +-
 PLUGINS/src/svdrpdemo/Makefile      |   4 +-
 config.h                            |   4 +-
 i18n.c                              | 160 ++++++++++++++--------------
 newplugin                           |   4 +-
 recording.c                         |   7 +-
 timers.c                            |  10 +-
 16 files changed, 137 insertions(+), 115 deletions(-)

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 78413683..6d853362 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1006,6 +1006,8 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
  for reporting a bug in handling empty titles in cEvent::FixEpgBugs()
  for suggesting to replace the "Really restart?" prompt in the call to
  cPluginManager::Active() in menu.c to "restart anyway?"
+ for adding --remove-destination to the 'cp' command for binaries in the Makefiles of
+ the plugins
 
 Ralf Klueber <ralf.klueber@vodafone.com>
  for reporting a bug in cutting a recording if there is only a single editing mark
@@ -1817,6 +1819,8 @@ Petri Hintukainen <Petri.Hintukainen@hut.fi>
  have been several reports that it causes more problems than it solves
  for suggesting to add --remove-destination to the 'cp' command for binaries in
  the Makefile to avoid a crash in case a new version is installed on a running system
+ for fixing handling video directory updates in case the timestamp of the .update
+ file is in the future
 
 Marcel Schaeben <mts280@gmx.de>
  for his "Easy Input" patch
diff --git a/HISTORY b/HISTORY
index 1e4a553d..784a0562 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4914,3 +4914,15 @@ Video Disk Recorder Revision History
   to Alexander Rieger).
 - Implemented a copy constructor for cTimer (thanks to Udo Richter for reporting that
   an assignment in svdrp.c didn't use the cTimer::operator=()).
+
+2006-09-17: Version 1.4.2-3
+
+- Added --remove-destination to the 'cp' command for binaries in the Makefiles of
+  the plugins (thanks to Rolf Ahrenberg).
+- The 'skincurses' plugin now adjusts the size of the OSD to the size of the console
+  window.
+- Fixed deleting expired VPS timers (under certain conditions a timer could have been
+  deleted before it even started recording).
+- Updated the Hungarian language texts (thanks to Istvan Koenigsberger and Guido Josten).
+- Fixed handling video directory updates in case the timestamp of the .update file
+  is in the future (thanks to Petri Hintukainen).
diff --git a/PLUGINS/src/hello/Makefile b/PLUGINS/src/hello/Makefile
index cefc3331..8deaeaa8 100644
--- a/PLUGINS/src/hello/Makefile
+++ b/PLUGINS/src/hello/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.14 2006/04/24 17:20:58 kls Exp $
+# $Id: Makefile 1.15 2006/09/09 12:38:35 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -67,7 +67,7 @@ all: libvdr-$(PLUGIN).so
 
 libvdr-$(PLUGIN).so: $(OBJS)
 	$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
-	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 
 dist: clean
 	@-rm -rf $(TMPDIR)/$(ARCHIVE)
diff --git a/PLUGINS/src/osddemo/Makefile b/PLUGINS/src/osddemo/Makefile
index f0b13063..71638887 100644
--- a/PLUGINS/src/osddemo/Makefile
+++ b/PLUGINS/src/osddemo/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.8 2006/04/24 17:21:00 kls Exp $
+# $Id: Makefile 1.9 2006/09/09 12:38:35 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -67,7 +67,7 @@ all: libvdr-$(PLUGIN).so
 
 libvdr-$(PLUGIN).so: $(OBJS)
 	$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
-	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 
 dist: clean
 	@-rm -rf $(TMPDIR)/$(ARCHIVE)
diff --git a/PLUGINS/src/servicedemo/Makefile b/PLUGINS/src/servicedemo/Makefile
index e44af0b1..a18f9950 100644
--- a/PLUGINS/src/servicedemo/Makefile
+++ b/PLUGINS/src/servicedemo/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.7 2006/06/24 09:09:54 kls Exp $
+# $Id: Makefile 1.8 2006/09/09 12:38:35 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -69,11 +69,11 @@ all: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so
 
 libvdr-$(PLUGIN1).so: $(PLUGIN1).o
 	$(CXX) $(CXXFLAGS) -shared $(PLUGIN1).o -o $@
-	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 
 libvdr-$(PLUGIN2).so: $(PLUGIN2).o
 	$(CXX) $(CXXFLAGS) -shared $(PLUGIN2).o -o $@
-	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 
 dist: clean
 	@-rm -rf $(TMPDIR)/$(ARCHIVE)
diff --git a/PLUGINS/src/skincurses/HISTORY b/PLUGINS/src/skincurses/HISTORY
index c58423df..96ff93c8 100644
--- a/PLUGINS/src/skincurses/HISTORY
+++ b/PLUGINS/src/skincurses/HISTORY
@@ -35,3 +35,7 @@ VDR Plugin 'skincurses' Revision History
 - Fixed handling tabbed item display.
 - When the 'skincurses' plugin is loaded, it automatically sets the 'curses'
   skin as the current one.
+
+2006-09-10: Version 0.0.8
+
+- The size of the OSD is now adjusted to the size of the console window.
diff --git a/PLUGINS/src/skincurses/Makefile b/PLUGINS/src/skincurses/Makefile
index 05c5e053..4f83614f 100644
--- a/PLUGINS/src/skincurses/Makefile
+++ b/PLUGINS/src/skincurses/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.6 2006/04/24 17:21:02 kls Exp $
+# $Id: Makefile 1.7 2006/09/09 12:38:35 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -67,7 +67,7 @@ all: libvdr-$(PLUGIN).so
 
 libvdr-$(PLUGIN).so: $(OBJS)
 	$(CXX) $(CXXFLAGS) -shared $(OBJS) -lncurses -o $@
-	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 
 dist: clean
 	@-rm -rf $(TMPDIR)/$(ARCHIVE)
diff --git a/PLUGINS/src/skincurses/skincurses.c b/PLUGINS/src/skincurses/skincurses.c
index a75375b5..243ddcec 100644
--- a/PLUGINS/src/skincurses/skincurses.c
+++ b/PLUGINS/src/skincurses/skincurses.c
@@ -3,7 +3,7 @@
  *
  * See the README file for copyright information and how to reach the author.
  *
- * $Id: skincurses.c 1.10 2006/06/03 14:20:39 kls Exp $
+ * $Id: skincurses.c 1.11 2006/09/10 14:23:55 kls Exp $
  */
 
 #include <ncurses.h>
@@ -11,7 +11,7 @@
 #include <vdr/plugin.h>
 #include <vdr/skins.h>
 
-static const char *VERSION        = "0.0.7";
+static const char *VERSION        = "0.0.8";
 static const char *DESCRIPTION    = "A text only skin";
 static const char *MAINMENUENTRY  = NULL;
 
@@ -53,8 +53,8 @@ static int clrMessage[] = {
   clrRed
   };
 
-#define OsdWidth  50//XXX
-#define OsdHeight 20//XXX
+static int OsdWidth = 50;
+static int OsdHeight = 20;
 
 class cCursesOsd : public cOsd {
 private:
@@ -780,8 +780,13 @@ bool cPluginSkinCurses::ProcessArgs(int argc, char *argv[])
 bool cPluginSkinCurses::Initialize(void)
 {
   // Initialize any background activities the plugin shall perform.
-  initscr();
-  return true;
+  WINDOW *w = initscr();
+  if (w) {
+     OsdWidth  = w->_maxx - w->_begx + 1;
+     OsdHeight = w->_maxy - w->_begy + 1;
+     return true;
+     }
+  return false;
 }
 
 bool cPluginSkinCurses::Start(void)
diff --git a/PLUGINS/src/sky/Makefile b/PLUGINS/src/sky/Makefile
index 6b43441c..63a647c4 100644
--- a/PLUGINS/src/sky/Makefile
+++ b/PLUGINS/src/sky/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.8 2006/04/24 17:21:03 kls Exp $
+# $Id: Makefile 1.9 2006/09/09 12:38:35 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -67,7 +67,7 @@ all: libvdr-$(PLUGIN).so
 
 libvdr-$(PLUGIN).so: $(OBJS)
 	$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
-	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 
 dist: clean
 	@-rm -rf $(TMPDIR)/$(ARCHIVE)
diff --git a/PLUGINS/src/status/Makefile b/PLUGINS/src/status/Makefile
index 8cca7596..1985ab03 100644
--- a/PLUGINS/src/status/Makefile
+++ b/PLUGINS/src/status/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.12 2006/04/24 17:21:04 kls Exp $
+# $Id: Makefile 1.13 2006/09/09 12:38:35 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -67,7 +67,7 @@ all: libvdr-$(PLUGIN).so
 
 libvdr-$(PLUGIN).so: $(OBJS)
 	$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
-	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 
 dist: clean
 	@-rm -rf $(TMPDIR)/$(ARCHIVE)
diff --git a/PLUGINS/src/svdrpdemo/Makefile b/PLUGINS/src/svdrpdemo/Makefile
index a191d513..8c0f42e3 100644
--- a/PLUGINS/src/svdrpdemo/Makefile
+++ b/PLUGINS/src/svdrpdemo/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.6 2006/04/24 17:21:06 kls Exp $
+# $Id: Makefile 1.7 2006/09/09 12:38:35 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -67,7 +67,7 @@ all: libvdr-$(PLUGIN).so
 
 libvdr-$(PLUGIN).so: $(OBJS)
 	$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
-	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
 
 dist: clean
 	@-rm -rf $(TMPDIR)/$(ARCHIVE)
diff --git a/config.h b/config.h
index 8e3ec8d0..ad0e4a78 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: config.h 1.269 2006/09/04 17:44:12 kls Exp $
+ * $Id: config.h 1.270 2006/09/10 14:09:31 kls Exp $
  */
 
 #ifndef __CONFIG_H
@@ -21,7 +21,7 @@
 
 // VDR's own version number:
 
-#define VDRVERSION  "1.4.2-2"
+#define VDRVERSION  "1.4.2-3"
 #define VDRVERSNUM   10402  // Version * 10000 + Major * 100 + Minor
 
 // The plugin API's version number:
diff --git a/i18n.c b/i18n.c
index d1882c8f..34c81f62 100644
--- a/i18n.c
+++ b/i18n.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: i18n.c 1.281 2006/05/05 13:26:09 kls Exp $
+ * $Id: i18n.c 1.282 2006/09/16 09:08:30 kls Exp $
  *
  * Translations provided by:
  *
@@ -20,7 +20,7 @@
  * Greek       Dimitrios Dimitrakos <mail@dimitrios.de>
  * Swedish     Tomas Prybil <tomas@prybil.se>, Jan Ekholm <chakie@infa.abo.fi>
  * Romanian    Paul Lacatus <paul@campina.iiruc.ro>, Lucian Muresan <lucianm@users.sourceforge.net>
- * Hungarian   Istvan Koenigsberger <istvnko@hotmail.com>, Guido Josten <guido.josten@t-online.de>
+ * Hungarian   Istvan & Silvia Koenigsberger <istvnko@hotmail.com>, Guido Josten <guido.josten@t-online.de>
  * Catalanian  Marc Rovira Vall <tm05462@salleURL.edu>, Ramon Roca <ramon.roca@xcombo.com>, Jordi Vil� <jvila@tinet.org>
  * Russian     Vyacheslav Dikonov <sdiconov@mail.ru>, Oleg Roitburd <oleg@roitburd.de>
  * Croatian    Drazen Dupor <drazen.dupor@dupor.com>, Dino Ravnic <dino.ravnic@fer.hr>
@@ -231,7 +231,7 @@ const tI18nPhrase Phrases[] = {
     "��������������������",
     "Timers",
     "Timer-e",
-    "Felv�tel beprogramoz�sa",
+    "Id�z�t�",
     "Temporitzadors",
     "�������",
     "Termini",
@@ -275,7 +275,7 @@ const tI18nPhrase Phrases[] = {
     "����������� E�������",
     "Inspelning",
     "Detaliile �nregistr�rii",
-    "",// TODO
+    "Felv�tel",
     "",// TODO
     "���� � ������",
     "",// TODO
@@ -385,7 +385,7 @@ const tI18nPhrase Phrases[] = {
     "����������� ��������������������",
     "�ndra timer",
     "Modificare timer",
-    "Felv�tel beprogramoz�s�nak megv�ltoztat�sa",
+    "Id�z�t� megv�ltoztat�sa",
     "Editar temporitzador",
     "��������� �������",
     "Ure�ivanje termina",
@@ -429,7 +429,7 @@ const tI18nPhrase Phrases[] = {
     "�����������",
     "Info",
     "Info",
-    "",//TODO
+    "Inform�ci�",
     "",//TODO
     "����",
     "Info",
@@ -473,7 +473,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "Den h�r s�ndningen - %s",
     "Aceast� emisiune - %s",
-    "",//TODO
+    "Ez az ad�s - %s",
     "",//TODO
     "��� �������� - %s",
     "",//TODO
@@ -495,7 +495,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "Den h�r s�ndningen - alla kanaler",
     "Aceast� emisiune - toate canalele",
-    "",//TODO
+    "Ez az ad�s - �sszes ad�",
     "",//TODO
     "��� �������� - ��� ������",
     "",//TODO
@@ -517,7 +517,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "Alla tillf�llen - alla kanaler",
     "Toate emisiunile - toate canalele",
-    "",//TODO
+    "Az �sszes ad�s - az �sszes ad�",
     "",//TODO
     "��� �������� - ��� ������",
     "",//TODO
@@ -694,7 +694,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "Timer",
     "Timer",
-    "",// TODO
+    "Id�z�t�",
     "",// TODO
     "������",
     "",// TODO
@@ -738,7 +738,7 @@ const tI18nPhrase Phrases[] = {
     "�����������",
     "Info",
     "Info",
-    "",//TODO
+    "Inform�ci�",
     "",//TODO
     "����",
     "Info",
@@ -1090,7 +1090,7 @@ const tI18nPhrase Phrases[] = {
     "������",
     "Skanna",
     "C�utare canale",
-    "",//TODO
+    "Ad�skeres�s",
     "",//TODO
     "�����������",
     "Pretra�i",
@@ -1112,7 +1112,7 @@ const tI18nPhrase Phrases[] = {
     "����",
     "Ljud",
     "Sunet",
-    "",// TODO
+    "Hang",
     "",// TODO
     "����",
     "",// TODO
@@ -1157,7 +1157,7 @@ const tI18nPhrase Phrases[] = {
     "�������� ��������������������;?",
     "Ta bort timern?",
     "�terg timer-ul?",
-    "Felv�tel beprogramoz�s�nak t�rl�se?",
+    "Id�z�t� t�rl�se?",
     "Esborrar el temporitzador?",
     "������� ������?",
     "Obrisati termin?",
@@ -1708,7 +1708,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "Okodad",
     "FTA (necriptat)",
-    "",//TODO
+    "K�dolatlan",
     "",//TODO
     "FTA (��������������)",
     "",//TODO
@@ -1730,7 +1730,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "krypterad",
     "criptat",
-    "",//TODO
+    "K�dolt",
     "",//TODO
     "������������",
     "",//TODO
@@ -2061,7 +2061,7 @@ const tI18nPhrase Phrases[] = {
     "VPS",
     "VPS",
     "VPS",
-    "",// TODO
+    "VPS",
     "",// TODO
     "VPS ��������",
     "VPS", // hrv
@@ -2172,7 +2172,7 @@ const tI18nPhrase Phrases[] = {
     "�� ������ ��������������� ��� �������������������!",
     "Kanalen anv�nds av en timer!",
     "Canalul este utilizat de un timer!",
-    "Csatorn�t m�s haszn�lja!",
+    "Az ad�t az id�z�t� haszn�lja!",
     "Canal en �s per un temporitzador!",
     "����� ����� ��������!",
     "Program je trenutno zauzet terminom za snimanje",
@@ -2194,7 +2194,7 @@ const tI18nPhrase Phrases[] = {
     "������ �������� �������!",
     "Om�jligt att byta kanal!",
     "Nu pot comuta canalul!",
-    "Csatorn�t nem lehet �tkapcsolni!",
+    "Az ad�t nem lehet elkapcsolni",
     "No puc canviar de canal!",
     "���������� ����������� �����!",
     "Ne mogu prebaciti program!",
@@ -2304,7 +2304,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "strax VPS inspelning...",
     "Urmeaz� o �nregistrare VPS!",
-    "",//TODO
+    "VPS-felv�tel r�gt�n kezd�dik!",
     "",//TODO
     "VPS-������ ����� ��������",
     "",//TODO
@@ -2348,7 +2348,7 @@ const tI18nPhrase Phrases[] = {
     "�� ������ ��� ����� ���������!",
     "Kanalen �r inte tillg�nglig!",
     "Canal indisponibil",
-    "A csatorna nem el�rhet�",
+    "Az ad� nem el�rhet�",
     "Canal no disponible!",
     "����� ����������!",
     "Program nije dostupan!",
@@ -2370,7 +2370,7 @@ const tI18nPhrase Phrases[] = {
     "�� ��������� ��� �������� ����������������!",
     "Kanalinst�llningarna �r ej unika!",
     "Parametrii canalului nu sunt univoci!",
-    "A csatornabe�ll�t�sok nem egy�rtelm�ek",
+    "Az ad�be�ll�t�sok nem egy�rtelm�ek",
     "Propietats del canal duplicades!",
     "��������� ������ �� ���������!",
     "Parametri programa nisu jednozna�ni!",
@@ -2392,7 +2392,7 @@ const tI18nPhrase Phrases[] = {
     "�� ������ ����� ������������ (������ �������)!",
     "Kanalen �r l�st (inspelning p�g�r)!",
     "Canal blocat (�nregistrare)!",
-    "Csatorna hozz�f�rhetetlen (felv�tel)!",
+    "Az ad� blokkolva (felv�tel)!",
     "Canal bloquejat (gravant)!",
     "����� ������������ (���� ������)!",
     "Program blokiran (snimanje)!",
@@ -2524,7 +2524,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "Otillr�cklingt diskutrymme f�r inspelning!",
     "Insuficient spa�iul pe disc pentru �nregistrare!",
-    "",//TODO
+    "Nincs elegend� hely a felv�telre",
     "",//TODO
     "������������ ����� �� ����� ��� ������ ������",
     "",//TODO
@@ -2568,7 +2568,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "�ppnar CAM menyn...",
     "Deschid meniul CAM...",
-    "",//TODO
+    "A CAM-men� nyit�s alatt...",
     "",//TODO
     "�������� ���� ������ ��������� ������� (CAM)",
     "",//TODO
@@ -2612,7 +2612,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "�terst�ller CAM ...",
     "Se reseteaz� CAM...",
-    "",//TODO
+    "A CAM �jra indul...",
     "",//TODO
     "���������� CAM...",
     "",//TODO
@@ -2678,7 +2678,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "Mata in %d siffror!",
     "V� rog introduce�i %d cifre!",
-    "",//TODO
+    "�ss�n be %d sz�mot!",
     "",//TODO
     "������� %d �����",
     "",//TODO
@@ -2700,7 +2700,7 @@ const tI18nPhrase Phrases[] = {
     "�� ���������� ����",
     "Ljud saknas!",
     "Lipse�te sunetul!",
-    "",//TODO
+    "Hang nem lehets�ges!",
     "",//TODO
     "����������� ����!",
     "Audio nedostupan",
@@ -2988,7 +2988,7 @@ const tI18nPhrase Phrases[] = {
     "���������",
     "Skin",
     "Skin",
-    "",// TODO
+    "Men� n�zet",
     "",// TODO
     "�����",
     "Povr�ina",
@@ -3010,7 +3010,7 @@ const tI18nPhrase Phrases[] = {
     "����",
     "Tema",
     "Tem�",
-    "",// TODO
+    "T�ma",
     "",// TODO
     "�������",
     "Tema",
@@ -3032,7 +3032,7 @@ const tI18nPhrase Phrases[] = {
     "��������",
     "V�nster",
     "St�nga",
-    "",// TODO
+    "Balra",
     "",// TODO
     "������ �����",
     "Lijevo",
@@ -3054,7 +3054,7 @@ const tI18nPhrase Phrases[] = {
     "�����",
     "�vre",
     "Sus",
-    "",// TODO
+    "Fent",
     "",// TODO
     "������ ������",
     "Gore",
@@ -3142,7 +3142,7 @@ const tI18nPhrase Phrases[] = {
     "������������� ������ ��������������",
     "Anv�nd liten font",
     "Utilizare fonturi mici",
-    "",// TODO
+    "Kisbet�t haszn�lni",
     "",// TODO
     "������������ ������ �����",
     "Koristi mala slova",
@@ -3164,7 +3164,7 @@ const tI18nPhrase Phrases[] = {
     "����",
     "aldrig",
     "niciodat�",
-    "",// TODO
+    "soha",
     "",// TODO
     "�������",
     "nikada",
@@ -3186,7 +3186,7 @@ const tI18nPhrase Phrases[] = {
     "�������� ��� ��� ���������",
     "skin beroende",
     "dep. de skin",
-    "",// TODO
+    "Men� n�zet�t�l f�gg�en",
     "",// TODO
     "�������� ����",
     "ovisno o povr�ini",
@@ -3208,7 +3208,7 @@ const tI18nPhrase Phrases[] = {
     "�����",
     "alltid",
     "�ntotdeauna",
-    "",// TODO
+    "mindig",
     "",// TODO
     "������",
     "uvijek",
@@ -3230,7 +3230,7 @@ const tI18nPhrase Phrases[] = {
     "���� ����������� ��������",
     "Placering av kanalinformation",
     "Pozi�ia informa�iilor despre canal",
-    "Csatorna-Inf� pozici�ja",
+    "Ad�sinform�ci� pozici�ja",
     "Posici� de la informaci� del canal",
     "��������� ���� ���������� � ������",
     "Pozicija informacije o programu",
@@ -3252,7 +3252,7 @@ const tI18nPhrase Phrases[] = {
     "������ ��������� ����������� �������� �� (�)",
     "Kanal information (s)",
     "Durata afi��rii info-canal (s)",
-    "",// TODO
+    "Ad�sinform�ci� felt�ntet�s�nek id�tartama (s)",
     "",// TODO
     "����� ���������� � ������ (���)",
     "Vrijeme prikaza informacije o programu (s)",
@@ -3274,7 +3274,7 @@ const tI18nPhrase Phrases[] = {
     "����������� ���� ������ ��������",
     "Information vid kanalbyte",
     "Informa�ii la comutarea canalului",
-    "Inf� a csatorna v�lt�s�n�l",
+    "Inform�ci� az ad� v�lt�s�n�l",
     "Informaci� del canvi de canal",
     "���������� ���������� � ������",
     "Informacije kod promjene kanala",
@@ -3296,7 +3296,7 @@ const tI18nPhrase Phrases[] = {
     "", // TODO
     "Timeout f�r kanalinformation",
     "Durata afi��rii informa�ii canal",
-    "", // TODO
+    "A lek�rdezett ad�sinform�ci� bez�r�sa",
     "", // TODO
     "���������� � ������ �������",
     "", // TODO
@@ -3340,7 +3340,7 @@ const tI18nPhrase Phrases[] = {
     "������ ����-����",
     "Rulla texten",
     "Derulare circular�",
-    "",// TODO
+    "Korl�tlan l�ptet�s",
     "",// TODO
     "����������� ���������",
     "S kraja sko�i na po�etak",
@@ -3362,7 +3362,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "Menyknappen st�nger",
     "Tasta 'Meniu' �nchide",
-    "",// TODO
+    "A men� gomb z�r",
     "",// TODO
     "������ ���� �������",
     "",// TODO
@@ -3406,7 +3406,7 @@ const tI18nPhrase Phrases[] = {
     "������ ��������� �������� EPG �� ����",
     "EPG s�kning timeout",
     "Interval achizi�ie EPG (h)",
-    "Fennmaradt id� az EPG-g (h)",
+    "Fennmaradt id� az EPG-�j�t�sig (h)",
     "M�xim d'Hores a cercar per la Guia",
     "�������� ������������ �������� (�)",
     "Vrijeme do EPG pregleda (h)",
@@ -3450,7 +3450,7 @@ const tI18nPhrase Phrases[] = {
     "������� ������������ ����������� (�����)",
     "Visa gammal information (min)",
     "Date EPG expirate cel mult (min)",
-    "",// TODO
+    "R�gi EPG adatok megmutat�sa (perc)",
     "",// TODO
     "�������� ���������� ������ (���)",
     "Prika�i stare EPG podatke (min)",
@@ -3516,7 +3516,7 @@ const tI18nPhrase Phrases[] = {
     "������������� �������",
     "�nskade spr�k",
     "Limbi preferate",
-    "",// TODO
+    "Kedvenc nyelvek",
     "",// TODO
     "�������������� ����� (�������)",
     "Preferirani jezici",
@@ -3538,7 +3538,7 @@ const tI18nPhrase Phrases[] = {
     "������������ ������",
     "�nskat spr�k",
     "Limba preferat�",
-    "",// TODO
+    "Kedvenc nyelv",
     "",// TODO
     "������",
     "Preferirani jezik",
@@ -3692,7 +3692,7 @@ const tI18nPhrase Phrases[] = {
     "����� ���� Dolby Digital",
     "Anv�nd Dolby Digital",
     "Sunet Dolby Digital",
-    "",//TODO
+    "Dolby-Digital hangot haszn�lni",
     "",//TODO
     "�������� Dolby Digital",
     "Koristi Dolby Digital",
@@ -3714,7 +3714,7 @@ const tI18nPhrase Phrases[] = {
     "��������� ��������",
     "Uppdatera kanaler",
     "Actualizare canale",
-    "",// TODO
+    "Ad�k aktualiz�l�sa",
     "",// TODO
     "��������� ��������� �������",
     "Aktualiziraj programe",
@@ -3736,7 +3736,7 @@ const tI18nPhrase Phrases[] = {
     "���� �������",
     "bara namn",
     "doar numele",
-    "",// TODO
+    "kiz�r�lag nevek",
     "",// TODO
     "������ ��������",
     "samo imena",
@@ -3758,7 +3758,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "bara PIDs",
     "Numai PID-uri",
-    "",// TODO
+    "kiz�r�lag PID-k",
     "",// TODO
     "������ PID�",
     "",// TODO
@@ -3780,7 +3780,7 @@ const tI18nPhrase Phrases[] = {
     "������� ��� PIDs",
     "namn och PID",
     "nume si PID-uri",
-    "",// TODO
+    "nevek �s PID-k",
     "",// TODO
     "�������� � PID�",
     "imena i identifikatore (PIDs)",
@@ -3802,7 +3802,7 @@ const tI18nPhrase Phrases[] = {
     "�������� ���� ��������",
     "l�gg till nya kanaler",
     "ad�ugare canale noi",
-    "",// TODO
+    "�j ad�k hozz�ad�sa",
     "",// TODO
     "����� ������",
     "dodaj nove programe",
@@ -3824,7 +3824,7 @@ const tI18nPhrase Phrases[] = {
     "�������� ���� �����������",
     "l�gg till nya transponders",
     "ad�ugare transpondere noi",
-    "",// TODO
+    "�j transponder hozz�ad�sa",
     "",// TODO
     "���. ������������",
     "dodaj nove transpondere", // hrv TODO transponderi == odasilja�i?
@@ -3846,7 +3846,7 @@ const tI18nPhrase Phrases[] = {
     "������� ����",
     "Antal ljudspr�k",
     "Limbi sunet",
-    "",//TODO
+    "Audio-nyelvek",
     "",//TODO
     "�������������� ����� (����)",
     "Audio jezici",
@@ -3868,7 +3868,7 @@ const tI18nPhrase Phrases[] = {
     "������ ����",
     "Ljudspr�k",
     "Limba sunetului",
-    "",//TODO
+    "Audio-nyelv",
     "",//TODO
     "������",
     "Audio jezik",
@@ -4000,7 +4000,7 @@ const tI18nPhrase Phrases[] = {
     "��������� ������ ���� ���� (�����)",
     "Marginal f�r start (min)",
     "Marj� la pornire (min)",
-    "Id�eltol�d�s a kezd�sn�l (min)",
+    "Id�eltol�d�s a kezd�sn�l (perc)",
     "Marge d'inici de gravaci� (min)",
     "���������� ������ ������ (���)",
     "Rezerva na po�etku snimanja (min)",
@@ -4022,7 +4022,7 @@ const tI18nPhrase Phrases[] = {
     "��������� ������ ��� ����� (�����)",
     "Marginal f�r stopp (min)",
     "Marj� la oprire (min)",
-    "Id�eltol�d�s a befejez�sn�l",
+    "Id�eltol�d�s a befejez�sn�l (perc)",
     "Marge de fi de gravaci� (min)",
     "������������ ��������� ������ (���)",
     "Rezerva na kraju (min)",
@@ -4176,7 +4176,7 @@ const tI18nPhrase Phrases[] = {
     "����� VPS",
     "Anv�nd VPS",
     "Utilizeaz� VPS",
-    "",// TODO
+    "VPS-t haszn�lni",
     "",// TODO
     "������������ ������� VPS",
     "Koristi VPS",
@@ -4198,7 +4198,7 @@ const tI18nPhrase Phrases[] = {
     "��������� VPS (�)",
     "VPS marginal (s)",
     "Marj� de timp la utilizare VPS (s)",
-    "",// TODO
+    "Id�eltol�d�s VPS-n�l (s)",
     "",// TODO
     "�������� ����� VPS (���)",
     "Vremenska rezerva kod VPS (s)",
@@ -4264,7 +4264,7 @@ const tI18nPhrase Phrases[] = {
     "�������� ��������� �������� (�����)",
     "Direktinspelning l�ngd (min)",
     "Timpul de �nregistare imediat� (min)",
-    "Felv�tel id�tartama",
+    "Felv�tel id�tartama (perc)",
     "Temps de gravaci� instant�nia (min)",
     "������������ ������ ������ (���)",
     "Trajanje direktnog snimanja (min)",
@@ -4396,7 +4396,7 @@ const tI18nPhrase Phrases[] = {
     "��������� ������ ���������� (�����)",
     "Minsta h�ndelse-pause (min)",
     "Durat� minim� emisiuni (min)",
-    "Min. esem�ny sz�net (min)",
+    "Id�zit�sek k�z�tti id�tartam (perc)",
     "Temps m�nim en pausa (min)",
     "���. ����� �������� ������� (���)",
     "Minimalno vrijeme pauze",
@@ -4418,7 +4418,7 @@ const tI18nPhrase Phrases[] = {
     "��������� ������ �������� (�����)",
     "Minsta anv�ndar-inaktivitet (min)",
     "Durata minim� de inactivitate (min)",
-    "Min. kezel�si aktivit�s (min)",
+    "VDR le�ll haszn�lat n�lk�l (perc)",
     "Temps m�nim d'inactivitat (min)",
     "���. ����� �������� ����� (���)",
     "Minimalno vrijeme neaktivnosti (min)",
@@ -4440,7 +4440,7 @@ const tI18nPhrase Phrases[] = {
     "SVDRP ������� (�)",
     "SVDRP Timeout (s)",
     "Timeout SVDRP (sec)",
-    "SVDRP Timeout (s)",
+    "SVDRP sz�tkapcsol haszn�lat n�lk�l(s)",
     "SVDRP Timeout (s)",
     "�������� ������ ����. SVDRP (���)",
     "SVDRP vrijeme neaktivnosti",
@@ -4462,7 +4462,7 @@ const tI18nPhrase Phrases[] = {
     "������� ������� (�)",
     "Zap timeout(s)",
     "Interval zapping (s)",
-    "",// TODO
+    "Ad�sv�lt�s ideje (s)",
     "",// TODO
     "�������� ������������ ������ (���)",
     "",// hrv TODO
@@ -4484,7 +4484,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "Kanal vid uppstart",
     "Canalul de pornire",
-    "",// TODO
+    "Ad�s a bekapcsol�sn�l",
     "",// TODO
     "����� ��� ���������",
     "",// TODO
@@ -4506,7 +4506,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "Ljudstyrka vid uppstart",
     "Volumul la pornire",
-    "",// TODO
+    "Hanger� a bekapcsol�sn�l",
     "",// TODO
     "��������� ��� ���������",
     "",// TODO
@@ -4528,7 +4528,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "som f�rut",
     "ca mai �nainte",
-    "",// TODO
+    "ahogy az el�bb",
     "",// TODO
     "��� ������",
     "",// TODO
@@ -5193,7 +5193,7 @@ const tI18nPhrase Phrases[] = {
     "�����������",
     "Info",
     "Info",
-    "",//TODO
+    "Inform�ci�",
     "",//TODO
     "����",
     "Info",
@@ -5347,7 +5347,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "N�sta",
     "Urm�tor",
-    "",// TODO
+    "El�re",
     "",// TODO
     "������",
     "",// TODO
@@ -5369,7 +5369,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "Bak�t",
     "Anterior",
-    "",// TODO
+    "Vissza",
     "",// TODO
     "�����",
     "",// TODO
@@ -5457,7 +5457,7 @@ const tI18nPhrase Phrases[] = {
     "",// TODO
     "F�rra kanalen",
     "Canal anterior",
-    "",// TODO
+    "Az el�z� ad�s",
     "",// TODO
     "���������� �����",
     "",// TODO
@@ -5545,7 +5545,7 @@ const tI18nPhrase Phrases[] = {
     "����",
     "Ljud",
     "Sunet",
-    "",// TODO
+    "Hang",
     "",// TODO
     "����",
     "",// TODO
@@ -5766,7 +5766,7 @@ const tI18nPhrase Phrases[] = {
     "����������: ",
     "Hopp: ",
     "Salt la: ",
-    "Ugr�s: ",
+    "Ugr�s:",
     "Salta a:",
     "�������: ",
     "Sko�i: ",
@@ -5788,7 +5788,7 @@ const tI18nPhrase Phrases[] = {
     "������ ",
     "Volym ",
     "Volum ",
-    "Hanger� ",
+    "Hanger�",
     "Volum ",
     "��������� ",
     "Glasno�a ",
@@ -5832,7 +5832,7 @@ const tI18nPhrase Phrases[] = {
     " ����� ������� ",
     " Avsluta inspelning ",
     " Opre�te �nregistrarea ",
-    " Felv�telt befejezni ",
+    " Felv�telt befejezni",
     " Aturar la gravaci� ",
     " ���������� ������ ",
     " Prekini snimanje ",
@@ -5986,7 +5986,7 @@ const tI18nPhrase Phrases[] = {
     "",//TODO
     "Inspelningen har startat",
     "A �nceput �nregistrarea",
-    "",//TODO
+    "A felv�tel elinditva Nd",
     "",//TODO
     "������ ������",
     "",//TODO
@@ -6030,7 +6030,7 @@ const tI18nPhrase Phrases[] = {
     "���� ������ EPG",
     "P�b�rjar EPG skanning",
     "Pornesc achizi�ia EPG",
-    "",// TODO
+    "EPG adatok aktualiz�l�sa",
     "",// TODO
     "������� EPG-������������",
     "Po�injem EPG-scan",
@@ -6074,7 +6074,7 @@ const tI18nPhrase Phrases[] = {
     "������� VDR",
     "Klassisk VDR",
     "VDR clasic",
-    "",// TODO
+    "Klasszikus VDR",
     "",// TODO
     "������������",
     "Klasi�ni VDR",
@@ -6096,7 +6096,7 @@ const tI18nPhrase Phrases[] = {
     "������ ST:TNG",
     "ST:TNG konsol",
     "Cons. ST:TNG",
-    "",// TODO
+    "ST:TNG Konzol",
     "",// TODO
     "ST:TNG ������",
     "ST:TNG Konzole",
@@ -6118,7 +6118,7 @@ const tI18nPhrase Phrases[] = {
     "����� �����",
     "ingen titel",
     "F�r� titlu",
-    "",// TODO
+    "n�v n�lk�l",
     "",// TODO
     "��� ��������",
     "Bez titla",
diff --git a/newplugin b/newplugin
index dd491405..363baae4 100755
--- a/newplugin
+++ b/newplugin
@@ -12,7 +12,7 @@
 # See the main source file 'vdr.c' for copyright information and
 # how to reach the author.
 #
-# $Id: newplugin 1.29 2006/06/24 09:15:17 kls Exp $
+# $Id: newplugin 1.30 2006/09/09 12:38:35 kls Exp $
 
 $PLUGIN_NAME = $ARGV[0] || die "Usage: newplugin <name>\n";
 
@@ -124,7 +124,7 @@ all: libvdr-\$(PLUGIN).so
 
 libvdr-\$(PLUGIN).so: \$(OBJS)
 	\$(CXX) \$(CXXFLAGS) -shared \$(OBJS) -o \$\@
-	\@cp \$\@ \$(LIBDIR)/\$\@.\$(APIVERSION)
+	\@cp --remove-destination \$\@ \$(LIBDIR)/\$\@.\$(APIVERSION)
 
 dist: clean
 	\@-rm -rf \$(TMPDIR)/\$(ARCHIVE)
diff --git a/recording.c b/recording.c
index fd7800b4..e60c4782 100644
--- a/recording.c
+++ b/recording.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: recording.c 1.149 2006/07/30 10:23:46 kls Exp $
+ * $Id: recording.c 1.150 2006/09/16 12:12:34 kls Exp $
  */
 
 #include "recording.h"
@@ -947,7 +947,10 @@ void cRecordings::TouchUpdate(void)
 
 bool cRecordings::NeedsUpdate(void)
 {
-  return lastUpdate < LastModifiedTime(UpdateFileName());
+  time_t lastModified = LastModifiedTime(UpdateFileName());
+  if (lastModified > time(NULL))
+     return false; // somebody's clock isn't running correctly
+  return lastUpdate < lastModified;
 }
 
 bool cRecordings::Update(bool Wait)
diff --git a/timers.c b/timers.c
index 18dab0ff..069b8578 100644
--- a/timers.c
+++ b/timers.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: timers.c 1.64 2006/09/08 15:06:09 kls Exp $
+ * $Id: timers.c 1.65 2006/09/15 14:15:53 kls Exp $
  */
 
 #include "timers.h"
@@ -438,13 +438,7 @@ int cTimer::Matches(const cEvent *Event, int *Overlap) const
 
 bool cTimer::Expired(void) const
 {
-  if (IsSingleEvent() && !Recording() && StopTime() + EXPIRELATENCY <= time(NULL)) {
-     if (HasFlags(tfVps) && event && event->Vps())
-        return event->RunningStatus() == SI::RunningStatusNotRunning;
-     else
-        return true;
-     }
-  return false;
+  return IsSingleEvent() && !Recording() && StopTime() + EXPIRELATENCY <= time(NULL) && (!HasFlags(tfVps) || !event);
 }
 
 time_t cTimer::StartTime(void) const