r6952 - in /vdr/vdr/trunk/debian: changelog control debugvdr patches/00list patches/opt-20_liemikuutio.dpatch patches/opt-39_noepg.dpatch patches/opt-48-x_pin.dpatch patches/opt-49-x_pvrinput.dpatch patches/patchtest rules vdrdbg-buildpackage vdrleaktest

tiber-guest at users.alioth.debian.org tiber-guest at users.alioth.debian.org
Wed May 21 09:24:10 UTC 2008


Author: tiber-guest
Date: Wed May 21 09:24:10 2008
New Revision: 6952

URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/?sc=1&rev=6952
Log:
* Modified opt-49-x_pvrinput.dpatch: Added CA-Id's 0xA1 and 0xA2, required by
  pvrusb2 as suggested by Christian Jarczyk
* Using txt2man for manpages that used docbook before
* Upgraded opt-21_liemikuutio.dpatch to version 1.21
* Updated opt-48_pin.dpatch
* Upgraded extensions patch to version 61
* Upgraded opt-39_noepg.dpatch to the patch taken from the vdr-noepgmenu
  plugin 0.0.6.beta3
* Added opt-52_hard_link_cutter.dpatch

Modified:
    vdr/vdr/trunk/debian/changelog
    vdr/vdr/trunk/debian/control
    vdr/vdr/trunk/debian/debugvdr
    vdr/vdr/trunk/debian/patches/00list
    vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch
    vdr/vdr/trunk/debian/patches/opt-39_noepg.dpatch
    vdr/vdr/trunk/debian/patches/opt-48-x_pin.dpatch
    vdr/vdr/trunk/debian/patches/opt-49-x_pvrinput.dpatch
    vdr/vdr/trunk/debian/patches/patchtest
    vdr/vdr/trunk/debian/rules
    vdr/vdr/trunk/debian/vdrdbg-buildpackage
    vdr/vdr/trunk/debian/vdrleaktest

Modified: vdr/vdr/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/changelog?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/changelog (original)
+++ vdr/vdr/trunk/debian/changelog Wed May 21 09:24:10 2008
@@ -1,3 +1,17 @@
+vdr (1.6.0-3) UNRELEASED; urgency=low
+
+  * Modified opt-49-x_pvrinput.dpatch: Added CA-Id's 0xA1 and 0xA2, required by
+    pvrusb2 as suggested by Christian Jarczyk
+  * Using txt2man for manpages that used docbook before
+  * Upgraded opt-21_liemikuutio.dpatch to version 1.21
+  * Updated opt-48_pin.dpatch
+  * Upgraded extensions patch to version 61
+  * Upgraded opt-39_noepg.dpatch to the patch taken from the vdr-noepgmenu
+    plugin 0.0.6.beta3
+  * Added opt-52_hard_link_cutter.dpatch
+
+ -- Tobias Grimm <tg at e-tobi.net>  Mon, 12 May 2008 18:29:55 +0200
+
 vdr (1.6.0-2) unstable; urgency=low
 
   [ Tobias Grimm ]

Modified: vdr/vdr/trunk/debian/control
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/control?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/control (original)
+++ vdr/vdr/trunk/debian/control Wed May 21 09:24:10 2008
@@ -3,8 +3,9 @@
 Priority: extra
 Maintainer: Debian VDR Team <pkg-vdr-dvb-devel at lists.alioth.debian.org>
 Uploaders: Thomas Schmidt <tschmidt at debian.org>, Tobias Grimm <tg at e-tobi.net>, Thomas Günther <tom at toms-cafe.de>
-Build-Depends: debhelper (>= 5), dpatch, xsltproc, docbook-xsl, libjpeg62-dev, libcap-dev,
- libncursesw5-dev, libfreetype6-dev, libfontconfig-dev, gettext
+Build-Depends: debhelper (>= 5), dpatch, libjpeg62-dev, libcap-dev,
+  libncursesw5-dev, libfreetype6-dev, libfontconfig-dev, gettext,
+  txt2man
 Standards-Version: 3.7.3
 Vcs-Svn: svn://svn.debian.org/pkg-vdr-dvb/vdr/vdr/trunk/
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/

Modified: vdr/vdr/trunk/debian/debugvdr
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/debugvdr?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/debugvdr (original)
+++ vdr/vdr/trunk/debian/debugvdr Wed May 21 09:24:10 2008
@@ -1,24 +1,54 @@
-#! /bin/bash
-#
-# Start debug version of vdr with the same options as the normal vdr daemon
-#
-# Options:
-#          -r <port>     Start with gdbserver host:<port> instead of gdb.
-#                        (Default port is 1000)
-#
+#!/bin/bash
 
-. /usr/lib/vdr/config-loader.sh
+# We need bash here, because of the *-loader.sh scripts containing bashisms!
 
-GDB_SERVER="no"
-GDB_SERVER_PORT="1000"
+## NAME
+##   debugvdr - Runs the VDR debugging binary with the GDB debugger.
+##
+## SYNOPSIS
+##   debugvdr [-r]
+## 
+## DESCRIPTION
+##   debugvdr will start VDR with the GDB debugger with the same command line
+##   arguments as the VDR daemon. This means, all installed plugins will be
+##   loaded. If VDR is still running, it will be automatically stopped before
+##   starting the debugging version.
+## 
+## OPTIONS
+##   -r Start VDR with the GDB Server on port 1000 for remote debugging.
+## 
+## SEE ALSO
+##   vdr(1), gdb(1)
+## 
+## AUTHOR
+##   This manual page was written by Tobias Grimm <tg at e-tobi.net>
+## 
+### txt2man -s 1 -t DEBUGVDR -v "Start VDR with the GDB debugger"
 
-if [ "$1" = "-r" ] ; then
-    GDB_SERVER="yes" ;
-    [ -x $2 ] || GDB_SERVER_PORT="$2"
-fi
+usage()
+{
+    local HELPCOMMENTPATTERN="^## "
+    cat "$0" | grep "$HELPCOMMENTPATTERN" | sed "s/$HELPCOMMENTPATTERN//"
+}
+
+
+while getopts hr opt
+do
+    case $opt in
+        r)
+            GDB_SERVER="yes"
+            [ -x $2 ] || GDB_SERVER_PORT="$2"
+            ;;
+        *)
+            usage
+            exit
+            ;;
+    esac
+done
 
 PLUGINS=""
 
+. /usr/lib/vdr/config-loader.sh
 . /usr/lib/vdr/commands-loader.sh
 . /usr/lib/vdr/plugin-loader.sh
 
@@ -37,7 +67,7 @@
 
 else
     GDB_COMMANDS_FILE=/tmp/gdbcommands
-     
+
     echo "set args $VDRCOMMANDLINE"         >$GDB_COMMANDS_FILE
     echo "echo -----------------------\n"   >>$GDB_COMMANDS_FILE
     echo "echo ---- VDR-Debugging ----\n"   >>$GDB_COMMANDS_FILE

Modified: vdr/vdr/trunk/debian/patches/00list
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/00list?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/00list (original)
+++ vdr/vdr/trunk/debian/patches/00list Wed May 21 09:24:10 2008
@@ -84,3 +84,6 @@
 # Modifies the start time of recordings to the first cutting mark
 # (disabled by default - enable in VDR's recording setup)
 # opt-51_cuttime
+
+# Records into smaller files and uses hardlinks to speed up cutting
+# opt-52_hard_link_cutter

Modified: vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch (original)
+++ vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch Wed May 21 09:24:10 2008
@@ -1,6 +1,6 @@
 #! /bin/sh /usr/share/dpatch/dpatch-run
 ## opt-20_liemikuutio.dpatch by Rolf Ahrenberg <Rolf.Ahrenberg AT sci.fi>
-## http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-liemikuutio-1.19.diff.gz
+## http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-liemikuutio-1.21.diff.gz
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Patch collection - see HISTORY-liemikuutio for details.
@@ -8,8 +8,8 @@
 @DPATCH@
 diff -Nru vdr-1.6.0-vanilla/HISTORY-liemikuutio vdr-1.6.0-liemikuutio/HISTORY-liemikuutio
 --- vdr-1.6.0-vanilla/HISTORY-liemikuutio	1970-01-01 02:00:00.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/HISTORY-liemikuutio	2008-03-27 21:47:57.000000000 +0200
-@@ -0,0 +1,97 @@
++++ vdr-1.6.0-liemikuutio/HISTORY-liemikuutio	2008-05-08 22:47:59.000000000 +0300
+@@ -0,0 +1,108 @@
 +-----------------------------------
 +Liemikuutio for Video Disc Recorder
 +
@@ -107,6 +107,17 @@
 +- Modified binary skip to use kPrev and kNext keys and the skip is now
 +  always shortened after a direction change (Thanks to Timo Eskola).
 +- Readded k1_k3_jumps_20s patch.
++
++2008-04-04: Version 1.20
++
++- Added bitrate information into rename menu.
++- Readded the path editing support of rename recordings patch (Thanks
++  to Firefly).
++
++2008-05-08: Version 1.21
++
++- Fixed rename recordings (Thanks to Firefly).
++- Added a DVB subtitles hack for old recordings (Thanks to Anssi Hannula).
 diff -Nru vdr-1.6.0-vanilla/config.c vdr-1.6.0-liemikuutio/config.c
 --- vdr-1.6.0-vanilla/config.c	2008-03-27 21:43:25.000000000 +0200
 +++ vdr-1.6.0-liemikuutio/config.c	2008-03-27 21:47:57.000000000 +0200
@@ -148,12 +159,12 @@
  
 diff -Nru vdr-1.6.0-vanilla/config.h vdr-1.6.0-liemikuutio/config.h
 --- vdr-1.6.0-vanilla/config.h	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/config.h	2008-03-27 21:47:57.000000000 +0200
++++ vdr-1.6.0-liemikuutio/config.h	2008-04-26 23:23:40.000000000 +0300
 @@ -36,6 +36,8 @@
  // plugins to work with newer versions of the core VDR as long as no
  // VDR header files have changed.
  
-+#define LIEMIKUUTIO  119
++#define LIEMIKUUTIO  121
 +
  #define MAXPRIORITY 99
  #define MAXLIFETIME 99
@@ -166,9 +177,22 @@
    int __EndData__;
    cSetup(void);
    cSetup& operator= (const cSetup &s);
+diff -Nru vdr-1.6.0-vanilla/device.c vdr-1.6.0-liemikuutio/device.c
+--- vdr-1.6.0-vanilla/device.c	2008-03-27 21:43:25.000000000 +0200
++++ vdr-1.6.0-liemikuutio/device.c	2008-05-08 22:50:10.000000000 +0300
+@@ -1100,7 +1100,8 @@
+      int LanguagePreference = INT_MAX; // higher than the maximum possible value
+      for (int i = ttSubtitleFirst; i <= ttSubtitleLast; i++) {
+          const tTrackId *TrackId = GetTrack(eTrackType(i));
+-         if (TrackId && TrackId->id && I18nIsPreferredLanguage(Setup.SubtitleLanguages, TrackId->language, LanguagePreference))
++         if (TrackId && TrackId->id && (I18nIsPreferredLanguage(Setup.SubtitleLanguages, TrackId->language, LanguagePreference) ||
++             ((i == ttSubtitleFirst + 8) && !(*TrackId->language) && (LanguagePreference == INT_MAX))))
+             PreferredTrack = eTrackType(i);
+          }
+      // Make sure we're set to an available subtitle track:
 diff -Nru vdr-1.6.0-vanilla/menu.c vdr-1.6.0-liemikuutio/menu.c
 --- vdr-1.6.0-vanilla/menu.c	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/menu.c	2008-03-27 21:47:57.000000000 +0200
++++ vdr-1.6.0-liemikuutio/menu.c	2008-04-04 00:23:09.000000000 +0300
 @@ -13,6 +13,7 @@
  #include <stdio.h>
  #include <stdlib.h>
@@ -177,7 +201,42 @@
  #include "channels.h"
  #include "config.h"
  #include "cutter.h"
-@@ -1048,7 +1049,8 @@
+@@ -705,7 +706,22 @@
+      Add(new cMenuEditBitItem( tr("VPS"),          &data.flags, tfVps));
+      Add(new cMenuEditIntItem( tr("Priority"),     &data.priority, 0, MAXPRIORITY));
+      Add(new cMenuEditIntItem( tr("Lifetime"),     &data.lifetime, 0, MAXLIFETIME));
+-     Add(new cMenuEditStrItem( tr("File"),          data.file, sizeof(data.file)));
++
++     char* p = strrchr(data.file, '~');
++     if (p) {
++        p++;
++        Utf8Strn0Cpy(name, p, sizeof(name));
++        Utf8Strn0Cpy(path, data.file, sizeof(path));
++        p = strrchr(path, '~');
++        if (p)
++           p[0] = 0;
++        }
++     else {
++        Utf8Strn0Cpy(name, data.file, sizeof(name));
++        Utf8Strn0Cpy(path, "", sizeof(path));
++        }
++     Add(new cMenuEditStrItem( tr("File"),          name, sizeof(name), tr(FileNameChars)));
++     Add(new cMenuEditRecPathItem(tr("Path"),       path, sizeof(path)));
+      SetFirstDayItem();
+      }
+   Timers.IncBeingEdited();
+@@ -745,6 +761,10 @@
+                           Skins.Message(mtError, tr("*** Invalid Channel ***"));
+                           break;
+                           }
++                       if(strlen(path))
++                          snprintf(data.file, sizeof(data.file), "%s~%s", path, name);
++                       else
++                          snprintf(data.file, sizeof(data.file), "%s", name);
+                        if (!*data.file)
+                           strcpy(data.file, data.Channel()->ShortName(true));
+                        if (timer) {
+@@ -1048,7 +1068,8 @@
    const cChannel *channel;
    bool withDate;
    int timerMatch;
@@ -187,7 +246,7 @@
    static void SetSortMode(eScheduleSortMode SortMode) { sortMode = SortMode; }
    static void IncSortMode(void) { sortMode = eScheduleSortMode((sortMode == ssmAllAll) ? ssmAllThis : sortMode + 1); }
    static eScheduleSortMode SortMode(void) { return sortMode; }
-@@ -1058,12 +1060,13 @@
+@@ -1058,12 +1079,13 @@
  
  cMenuScheduleItem::eScheduleSortMode cMenuScheduleItem::sortMode = ssmAllThis;
  
@@ -202,7 +261,7 @@
    Update(true);
  }
  
-@@ -1080,6 +1083,17 @@
+@@ -1080,6 +1102,17 @@
  
  static const char *TimerMatchChars = " tT";
  
@@ -220,7 +279,7 @@
  bool cMenuScheduleItem::Update(bool Force)
  {
    bool result = false;
-@@ -1095,7 +1109,14 @@
+@@ -1095,7 +1128,14 @@
       if (channel && withDate)
          buffer = cString::sprintf("%d\t%.*s\t%.*s\t%s\t%c%c%c\t%s", channel->Number(), Utf8SymChars(csn, 6), csn, Utf8SymChars(eds, 6), *eds, *event->GetTimeString(), t, v, r, event->Title());
       else if (channel)
@@ -236,7 +295,7 @@
       else
          buffer = cString::sprintf("%.*s\t%s\t%c%c%c\t%s", Utf8SymChars(eds, 6), *eds, *event->GetTimeString(), t, v, r, event->Title());
       SetText(buffer);
-@@ -1129,7 +1150,7 @@
+@@ -1129,7 +1169,7 @@
  const cEvent *cMenuWhatsOn::scheduleEvent = NULL;
  
  cMenuWhatsOn::cMenuWhatsOn(const cSchedules *Schedules, bool Now, int CurrentChannelNr)
@@ -245,7 +304,7 @@
  {
    now = Now;
    helpKeys = -1;
-@@ -1141,7 +1162,7 @@
+@@ -1141,7 +1181,7 @@
           if (Schedule) {
              const cEvent *Event = Now ? Schedule->GetPresentEvent() : Schedule->GetFollowingEvent();
              if (Event)
@@ -254,7 +313,7 @@
              }
           }
        }
-@@ -1883,7 +1904,7 @@
+@@ -1883,7 +1923,7 @@
    fileName = strdup(Recording->FileName());
    name = NULL;
    totalEntries = newEntries = 0;
@@ -263,7 +322,7 @@
    if (*Text() == '\t')
       name = strdup(Text() + 2); // 'Text() + 2' to skip the two '\t'
  }
-@@ -1899,13 +1920,133 @@
+@@ -1899,13 +1939,155 @@
    totalEntries++;
    if (New)
       newEntries++;
@@ -292,6 +351,7 @@
 +  int lifetime;
 +  int priority;
 +  char name[MaxFileName];
++  char path[MaxFileName];
 +  cOsdItem *marksItem, *resumeItem;
 +  bool isResume, isMarks;
 +  cRecording *recording;
@@ -308,9 +368,22 @@
 +  recording = Recording;
 +  priority = recording->priority;
 +  lifetime = recording->lifetime;
-+  Utf8Strn0Cpy(name, recording->Name(), sizeof(name));
-+
-+  Add(new cMenuEditStrItem(tr("File"),      name,     sizeof(name), tr(FileNameChars)));
++
++  char* p = strrchr(recording->Name(), '~');
++  if (p) {
++     p++;
++     Utf8Strn0Cpy(name, p, sizeof(name));
++     Utf8Strn0Cpy(path, recording->Name(), sizeof(path));
++     p = strrchr(path, '~');
++     if (p)
++        p[0] = 0;
++     }
++  else {
++     Utf8Strn0Cpy(name, recording->Name(), sizeof(name));
++     Utf8Strn0Cpy(path, "", sizeof(path));
++     }
++  Add(new cMenuEditStrItem(tr("Name"),      name,     sizeof(name), tr(FileNameChars)));
++  Add(new cMenuEditRecPathItem(tr("Path"),  path,     sizeof(path)                   ));
 +  Add(new cMenuEditIntItem(tr("Priority"), &priority, 0,            MAXPRIORITY      ));
 +  Add(new cMenuEditIntItem(tr("Lifetime"), &lifetime, 0,            MAXLIFETIME      ));
 +
@@ -323,13 +396,16 @@
 +     Add(new cOsdItem(cString::sprintf("%s:\t%s", tr("Channel"), *ChannelString(channel, 0)), osUnknown, false));
 +
 +  cIndexFile *index = new cIndexFile(recording->FileName(), false);
++  int recLen = 0;
 +  if (index) {
++     recLen = index->Last() / FRAMESPERSEC;
 +     Add(new cOsdItem(cString::sprintf("%s:\t%s", tr("Length"), *IndexToHMSF(index->Last())), osUnknown, false));
 +     delete index;
 +     }
 +
 +  int dirSize = DirSizeMB(recording->FileName());
-+  Add(new cOsdItem((dirSize > 9999) ? cString::sprintf("%s:\t%.2f GB", tr("Size"), dirSize / 1024.0) : cString::sprintf("%s:\t%d MB", tr("Size"), dirSize), osUnknown, false));
++  cString bitRate = recLen ? cString::sprintf(" (%.2f MBit/s)", 8.0 * dirSize / recLen) : cString("");
++  Add(new cOsdItem((dirSize > 9999) ? cString::sprintf("%s:\t%.2f GB%s", tr("Size"), dirSize / 1024.0, *bitRate) : cString::sprintf("%s:\t%d MB%s", tr("Size"), dirSize, *bitRate), osUnknown, false));
 +
 +  Add(new cOsdItem("", osUnknown, false));
 +
@@ -349,7 +425,12 @@
 +
 +  if (state == osUnknown) {
 +     if (Key == kOk) {
-+        if (recording->Rename(name, &priority, &lifetime)) {
++        char buffer[MaxFileName];
++        if (Utf8StrLen(path))
++           snprintf(buffer, sizeof(buffer), "%s~%s", path, name);
++        else
++           snprintf(buffer, sizeof(buffer), "%s", name);
++        if (recording->Rename(buffer, &priority, &lifetime)) {
 +           Recordings.ChangeState();
 +           Recordings.TouchUpdate();
 +           return osRecordings;
@@ -399,7 +480,7 @@
  {
    base = Base ? strdup(Base) : NULL;
    level = Setup.RecordingDirs ? Level : -1;
-@@ -2136,6 +2277,19 @@
+@@ -2136,6 +2318,19 @@
    return osContinue;
  }
  
@@ -419,7 +500,7 @@
  eOSState cMenuRecordings::ProcessKey(eKeys Key)
  {
    bool HadSubMenu = HasSubMenu();
-@@ -2150,7 +2304,12 @@
+@@ -2150,7 +2345,12 @@
         case kYellow: return Delete();
         case kInfo:
         case kBlue:   return Info();
@@ -433,7 +514,7 @@
         case kNone:   if (Recordings.StateChanged(recordingsState))
                          Set(true);
                       break;
-@@ -2276,6 +2435,7 @@
+@@ -2276,6 +2476,7 @@
    Add(new cMenuEditBoolItem(tr("Setup.OSD$Scroll wraps"),           &data.MenuScrollWrap));
    Add(new cMenuEditBoolItem(tr("Setup.OSD$Menu key closes"),        &data.MenuKeyCloses));
    Add(new cMenuEditBoolItem(tr("Setup.OSD$Recording directories"),  &data.RecordingDirs));
@@ -441,7 +522,7 @@
    SetCurrent(Get(current));
    Display();
  }
-@@ -2380,6 +2540,7 @@
+@@ -2380,6 +2581,7 @@
    Add(new cMenuEditIntItem( tr("Setup.EPG$EPG scan timeout (h)"),      &data.EPGScanTimeout));
    Add(new cMenuEditIntItem( tr("Setup.EPG$EPG bugfix level"),          &data.EPGBugfixLevel, 0, MAXEPGBUGFIXLEVEL));
    Add(new cMenuEditIntItem( tr("Setup.EPG$EPG linger time (min)"),     &data.EPGLinger, 0));
@@ -449,7 +530,7 @@
    Add(new cMenuEditBoolItem(tr("Setup.EPG$Set system time"),           &data.SetSystemTime));
    if (data.SetSystemTime)
       Add(new cMenuEditTranItem(tr("Setup.EPG$Use time from transponder"), &data.TimeTransponder, &data.TimeSource));
-@@ -2758,6 +2919,9 @@
+@@ -2758,6 +2960,9 @@
    Add(new cMenuEditIntItem( tr("Setup.Recording$Instant rec. time (min)"),   &data.InstantRecordTime, 1, MAXINSTANTRECTIME));
    Add(new cMenuEditIntItem( tr("Setup.Recording$Max. video file size (MB)"), &data.MaxVideoFileSize, MINVIDEOFILESIZE, MAXVIDEOFILESIZE));
    Add(new cMenuEditBoolItem(tr("Setup.Recording$Split edited files"),        &data.SplitEditedFiles));
@@ -459,7 +540,7 @@
  }
  
  // --- cMenuSetupReplay ------------------------------------------------------
-@@ -3045,6 +3209,7 @@
+@@ -3045,6 +3250,7 @@
       // Replay control:
       if (replaying && !stopReplayItem)
          // TRANSLATORS: note the leading blank!
@@ -467,7 +548,7 @@
          Add(stopReplayItem = new cOsdItem(tr(" Stop replaying"), osStopReplay));
       else if (stopReplayItem && !replaying) {
          Del(stopReplayItem->Index());
-@@ -3059,6 +3224,7 @@
+@@ -3059,6 +3265,7 @@
    bool CutterActive = cCutter::Active();
    if (CutterActive && !cancelEditingItem) {
       // TRANSLATORS: note the leading blank!
@@ -475,7 +556,7 @@
       Add(cancelEditingItem = new cOsdItem(tr(" Cancel editing"), osCancelEdit));
       result = true;
       }
-@@ -3079,6 +3245,7 @@
+@@ -3079,6 +3286,7 @@
       while ((s = cRecordControls::GetInstantId(s)) != NULL) {
             cOsdItem *item = new cOsdItem(osStopRecord);
             item->SetText(cString::sprintf("%s%s", tr(STOP_RECORDING), s));
@@ -483,7 +564,7 @@
             Add(item);
             if (!stopRecordingItem)
                stopRecordingItem = item;
-@@ -4059,6 +4226,10 @@
+@@ -4059,6 +4267,10 @@
  
  // --- cReplayControl --------------------------------------------------------
  
@@ -494,7 +575,7 @@
  cReplayControl *cReplayControl::currentReplayControl = NULL;
  char *cReplayControl::fileName = NULL;
  char *cReplayControl::title = NULL;
-@@ -4072,6 +4243,9 @@
+@@ -4072,6 +4284,9 @@
    lastCurrent = lastTotal = -1;
    lastPlay = lastForward = false;
    lastSpeed = -2; // an invalid value
@@ -504,7 +585,7 @@
    timeoutShow = 0;
    timeSearchActive = false;
    marks.Load(fileName);
-@@ -4435,6 +4609,32 @@
+@@ -4435,6 +4650,32 @@
      case kGreen:   SkipSeconds(-60); break;
      case kYellow|k_Repeat:
      case kYellow:  SkipSeconds( 60); break;
@@ -537,7 +618,7 @@
      case kStop:
      case kBlue:    Hide();
                     Stop();
-@@ -4444,12 +4644,8 @@
+@@ -4444,12 +4685,8 @@
        switch (Key) {
          // Editing:
          case kMarkToggle:      MarkToggle(); break;
@@ -552,16 +633,17 @@
          case kMarkMoveBack|k_Repeat:
 diff -Nru vdr-1.6.0-vanilla/menu.h vdr-1.6.0-liemikuutio/menu.h
 --- vdr-1.6.0-vanilla/menu.h	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/menu.h	2008-03-27 21:47:56.000000000 +0200
-@@ -35,6 +35,7 @@
++++ vdr-1.6.0-liemikuutio/menu.h	2008-04-03 23:24:39.000000000 +0300
+@@ -35,6 +35,8 @@
  private:
    cTimer *timer;
    cTimer data;
 +  char name[MaxFileName];
++  char path[MaxFileName];
    int channel;
    bool addIfConfirmed;
    cMenuEditDateItem *firstday;
-@@ -163,6 +164,7 @@
+@@ -163,6 +165,7 @@
    eOSState Delete(void);
    eOSState Info(void);
    eOSState Commands(eKeys Key = kNone);
@@ -569,7 +651,7 @@
  protected:
    cRecording *GetRecording(cMenuRecordingItem *Item);
  public:
-@@ -217,6 +219,9 @@
+@@ -217,6 +220,9 @@
    int lastCurrent, lastTotal;
    bool lastPlay, lastForward;
    int lastSpeed;
@@ -579,6 +661,237 @@
    time_t timeoutShow;
    bool timeSearchActive, timeSearchHide;
    int timeSearchTime, timeSearchPos;
+diff -Nru vdr-1.6.0-vanilla/menuitems.c vdr-1.6.0-liemikuutio/menuitems.c
+--- vdr-1.6.0-vanilla/menuitems.c	2008-03-27 21:43:25.000000000 +0200
++++ vdr-1.6.0-liemikuutio/menuitems.c	2008-04-26 23:23:31.000000000 +0300
+@@ -619,6 +619,168 @@
+   return osContinue;
+ }
+ 
++// --- cMenuEditRecPathItem --------------------------------------------------
++
++cMenuEditRecPathItem::cMenuEditRecPathItem(const char* Name, char* Path,
++   int Length): cMenuEditStrItem(Name, Path, Length, tr(FileNameChars))
++{
++  SetBase(Path);
++}
++
++cMenuEditRecPathItem::~cMenuEditRecPathItem()
++{
++}
++
++void cMenuEditRecPathItem::SetBase(const char* Path)
++{
++  if (!Path)
++      base[0] = 0;
++  Utf8Strn0Cpy(base, Path, sizeof(base));
++  char* p = strrchr(base, '~');
++  if (p)
++     p[0] = 0;
++  else
++     base[0] = 0;
++}
++
++void cMenuEditRecPathItem::FindNextLevel()
++{
++  char item[MaxFileName];
++
++  for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording))
++  {
++     char* p;
++     Utf8Strn0Cpy(item, recording->Name(), sizeof(item));
++     stripspace(value);
++     lengthUtf8 = Utf8ToArray(value, valueUtf8, length);
++     if (!lengthUtf8)
++        p = strchr(item, '~');
++     else {
++        if (strstr(item, value) != item)
++           continue;
++        if (item[strlen(value)] != '~')
++           continue;
++        p = strchr(item + strlen(value) + 1, '~');
++        }
++     if (!p)
++        continue;
++     p[0] = 0;
++     Utf8Strn0Cpy(base, value, length);
++     Utf8Strn0Cpy(value, item, length);
++     lengthUtf8 = Utf8ToArray(value, valueUtf8, length);
++     return;
++     }
++}
++
++void cMenuEditRecPathItem::Find(bool Next)
++{
++  char item[MaxFileName];
++  char lastItem[MaxFileName] = "";
++
++  for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording))
++  {
++     const char* recName = recording->Name();
++     if (Utf8StrLen(base) && strstr(recName, base) != recName)
++        continue;
++     if (strlen(base) && recName[strlen(base)] != '~')
++        continue;
++     Utf8Strn0Cpy(item, recName, sizeof(item));
++     char* p = strchr(item + strlen(base) + 1, '~');
++     if (!p)
++        continue;
++     p[0] = 0;
++     if (!Next && (strcmp(item, value) == 0)) {
++        if (strlen(lastItem))
++           Utf8Strn0Cpy(value, lastItem, length);
++        lengthUtf8 = Utf8ToArray(value, valueUtf8, length);
++        return;
++        }
++     if (strcmp(lastItem, item) != 0) {
++        if(Next && Utf8StrLen(lastItem) && strcmp(lastItem, value) == 0) {
++           Utf8Strn0Cpy(value, item, length);
++           lengthUtf8 = Utf8ToArray(value, valueUtf8, length);
++           return;
++           }
++        Utf8Strn0Cpy(lastItem, item, sizeof(lastItem));
++        }
++     }
++}
++
++void cMenuEditRecPathItem::SetHelpKeys(void)
++{
++  cSkinDisplay::Current()->SetButtons(tr("Rename$Up"), tr("Rename$Down"), tr("Rename$Previous"), tr("Rename$Next"));
++}
++
++eOSState cMenuEditRecPathItem::ProcessKey(eKeys Key)
++{
++  switch (Key) {
++    case kLeft:
++    case kRed:    // one level up
++                  if (!InEditMode())
++                     return cMenuEditItem::ProcessKey(Key);
++                  Utf8Strn0Cpy(value, base, lengthUtf8);
++                  lengthUtf8 = Utf8ToArray(value, valueUtf8, length);
++                  SetBase(base);
++                  pos = Utf8StrLen(base);
++                  if (pos)
++                     pos++;
++                  if (!lengthUtf8) {
++                     Utf8Strn0Cpy(value, " ", length);
++                     lengthUtf8 = Utf8ToArray(value, valueUtf8, length);
++                     }
++                  break;
++    case kRight:
++    case kGreen:  // one level down
++                  if (InEditMode())
++                     FindNextLevel();
++                  else
++                     EnterEditMode();
++                  if (!lengthUtf8) {
++                     Utf8Strn0Cpy(value, " ", length);
++                     lengthUtf8 = Utf8ToArray(value, valueUtf8, length);
++                     }
++                  pos = Utf8StrLen(base);
++                  if (pos)
++                     pos++;
++                  SetHelpKeys();
++                  break;
++    case kUp|k_Repeat:
++    case kUp:
++    case kYellow|k_Repeat:
++    case kYellow: // previous directory in list
++                  if (!InEditMode())
++                     return cMenuEditItem::ProcessKey(Key);
++                  Find(false);
++                  pos = Utf8StrLen(base);
++                  if (pos)
++                     pos++;
++                  break;
++    case kDown|k_Repeat:
++    case kDown:
++    case kBlue|k_Repeat:
++    case kBlue:   // next directory in list
++                  if (!InEditMode())
++                     return cMenuEditItem::ProcessKey(Key);
++                  Find(true);
++                  pos = Utf8StrLen(base);
++                  if (pos)
++                     pos++;
++                  break;
++    case kOk:     // done
++                  if (!InEditMode())
++                     return cMenuEditItem::ProcessKey(Key);
++                  stripspace(value);
++                  lengthUtf8 = Utf8ToArray(value, valueUtf8, length);
++                  cSkinDisplay::Current()->SetButtons(NULL);
++                  LeaveEditMode(Key == kOk);
++                  break;
++    default:
++                  return cMenuEditItem::ProcessKey(Key);
++    }
++  Set();
++  return osContinue;
++}
++
+ // --- cMenuEditStraItem -----------------------------------------------------
+ 
+ cMenuEditStraItem::cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char * const *Strings)
+diff -Nru vdr-1.6.0-vanilla/menuitems.h vdr-1.6.0-liemikuutio/menuitems.h
+--- vdr-1.6.0-vanilla/menuitems.h	2008-03-27 21:43:25.000000000 +0200
++++ vdr-1.6.0-liemikuutio/menuitems.h	2008-04-03 23:24:39.000000000 +0300
+@@ -78,26 +78,27 @@
+ 
+ class cMenuEditStrItem : public cMenuEditItem {
+ private:
+-  char *value;
+-  int length;
+-  const char *allowed;
+-  int pos, offset;
++  int offset;
+   bool insert, newchar, uppercase;
+-  int lengthUtf8;
+-  uint *valueUtf8;
+   uint *allowedUtf8;
+   uint *charMapUtf8;
+   uint *currentCharUtf8;
+   eKeys lastKey;
+   cTimeMs autoAdvanceTimeout;
+-  void SetHelpKeys(void);
+   uint *IsAllowed(uint c);
+   void AdvancePos(void);
+-  virtual void Set(void);
+   uint Inc(uint c, bool Up);
+   void Insert(void);
+   void Delete(void);
+ protected:
++  char *value;
++  int length;
++  uint *valueUtf8;
++  int lengthUtf8;
++  const char *allowed;
++  int pos;
++  void SetHelpKeys(void);
++  virtual void Set(void);
+   void EnterEditMode(void);
+   void LeaveEditMode(bool SaveValue = false);
+   bool InEditMode(void) { return valueUtf8 != NULL; }
+@@ -107,6 +108,19 @@
+   virtual eOSState ProcessKey(eKeys Key);
+   };
+ 
++class cMenuEditRecPathItem : public cMenuEditStrItem {
++protected:
++  char base[MaxFileName];
++  virtual void SetHelpKeys(void);
++  void SetBase(const char* Path);
++  void FindNextLevel();
++  void Find(bool Next);
++public:
++  cMenuEditRecPathItem(const char* Name, char* Path, int Length);
++  ~cMenuEditRecPathItem();
++  virtual eOSState ProcessKey(eKeys Key);
++  };
++
+ class cMenuEditStraItem : public cMenuEditIntItem {
+ private:
+   const char * const *strings;
 diff -Nru vdr-1.6.0-vanilla/osdbase.c vdr-1.6.0-liemikuutio/osdbase.c
 --- vdr-1.6.0-vanilla/osdbase.c	2008-03-27 21:43:25.000000000 +0200
 +++ vdr-1.6.0-liemikuutio/osdbase.c	2008-03-27 21:47:56.000000000 +0200
@@ -690,8 +1003,8 @@
    cSkinDisplayMenu *DisplayMenu(void) { return displayMenu; }
 diff -Nru vdr-1.6.0-vanilla/po/de_DE.po vdr-1.6.0-liemikuutio/po/de_DE.po
 --- vdr-1.6.0-vanilla/po/de_DE.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/de_DE.po	2008-03-27 21:47:57.000000000 +0200
-@@ -998,3 +998,36 @@
++++ vdr-1.6.0-liemikuutio/po/de_DE.po	2008-04-03 23:31:27.000000000 +0300
+@@ -998,3 +998,51 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
  msgstr "VDR wird in %s Minuten ausschalten"
@@ -707,6 +1020,21 @@
 +
 +msgid "Size"
 +msgstr "Größe"
++
++msgid "Path"
++msgstr "Pfad"
++
++msgid "Rename$Up"
++msgstr "Höher"
++
++msgid "Rename$Down"
++msgstr "Tiefer"
++
++msgid "Rename$Previous"
++msgstr "Vorheriger"
++
++msgid "Rename$Next"
++msgstr "Nächster"
 +
 +msgid "Delete marks information?"
 +msgstr "Marks löschen?"
@@ -730,8 +1058,8 @@
 +msgstr "Länge der Aufnahme anzeigen"
 diff -Nru vdr-1.6.0-vanilla/po/et_EE.po vdr-1.6.0-liemikuutio/po/et_EE.po
 --- vdr-1.6.0-vanilla/po/et_EE.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/et_EE.po	2008-03-27 21:47:57.000000000 +0200
-@@ -998,3 +998,36 @@
++++ vdr-1.6.0-liemikuutio/po/et_EE.po	2008-04-03 23:38:43.000000000 +0300
+@@ -998,3 +998,51 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
  msgstr "VDR lülitub välja %s minuti pärast"
@@ -747,6 +1075,21 @@
 +
 +msgid "Size"
 +msgstr ""
++
++msgid "Path"
++msgstr ""
++
++msgid "Rename$Up"
++msgstr "Üles"
++
++msgid "Rename$Down"
++msgstr "Alla"
++
++msgid "Rename$Previous"
++msgstr "Eelmine"
++
++msgid "Rename$Next"
++msgstr "Järgmine"
 +
 +msgid "Delete marks information?"
 +msgstr ""
@@ -770,8 +1113,8 @@
 +msgstr "Salvestuse pikkus"
 diff -Nru vdr-1.6.0-vanilla/po/fi_FI.po vdr-1.6.0-liemikuutio/po/fi_FI.po
 --- vdr-1.6.0-vanilla/po/fi_FI.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/fi_FI.po	2008-03-27 21:47:57.000000000 +0200
-@@ -1001,3 +1001,36 @@
++++ vdr-1.6.0-liemikuutio/po/fi_FI.po	2008-04-03 23:34:26.000000000 +0300
+@@ -1001,3 +1001,51 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
  msgstr "VDR sammuu %s minuutin kuluttua"
@@ -787,6 +1130,21 @@
 +
 +msgid "Size"
 +msgstr "Koko"
++
++msgid "Path"
++msgstr "Polku"
++
++msgid "Rename$Up"
++msgstr "Ylemmäs"
++
++msgid "Rename$Down"
++msgstr "Alemmas"
++
++msgid "Rename$Previous"
++msgstr "Edellinen"
++
++msgid "Rename$Next"
++msgstr "Seuraava"
 +
 +msgid "Delete marks information?"
 +msgstr "Poista tallenteen merkinnät?"
@@ -810,8 +1168,8 @@
 +msgstr "Näytä tallenteen kesto"
 diff -Nru vdr-1.6.0-vanilla/po/fr_FR.po vdr-1.6.0-liemikuutio/po/fr_FR.po
 --- vdr-1.6.0-vanilla/po/fr_FR.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/fr_FR.po	2008-03-27 21:47:57.000000000 +0200
-@@ -1004,3 +1004,36 @@
++++ vdr-1.6.0-liemikuutio/po/fr_FR.po	2008-04-03 23:36:49.000000000 +0300
+@@ -1004,3 +1004,51 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
  msgstr "VDR s'arrêtera dans %s minutes"
@@ -827,6 +1185,21 @@
 +
 +msgid "Size"
 +msgstr "Taille"
++
++msgid "Path"
++msgstr ""
++
++msgid "Rename$Up"
++msgstr "Haut"
++
++msgid "Rename$Down"
++msgstr "Bas"
++
++msgid "Rename$Previous"
++msgstr "Précédent"
++
++msgid "Rename$Next"
++msgstr "Suivant"
 +
 +msgid "Delete marks information?"
 +msgstr "Effacer les informations de marquage"

Modified: vdr/vdr/trunk/debian/patches/opt-39_noepg.dpatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/opt-39_noepg.dpatch?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/opt-39_noepg.dpatch (original)
+++ vdr/vdr/trunk/debian/patches/opt-39_noepg.dpatch Wed May 21 09:24:10 2008
@@ -1,69 +1,103 @@
 #! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-39_noepg.dpatch by Torsten/WarEagle at vdrportal.de
-## http://vdrportal.de/board/thread.php?postid=658080#post658080
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - solved conflicts with other patches
+## opt-39_noepg.dpatch from version the vdr-noepgmenu plugin 0.0.6.beta3
+## http://winni.vdr-developer.org/noepgmenu/downloads/beta
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: The patch allows to disable normal epg update for specified channels.
 ## DP: This is useful if you get epg data of the channels from external sources.
 
 @DPATCH@
-diff -u -x '*~' -x runvdr -x Makefile vdr-1.5.9-org/config.c vdr-1.5.9+noEPG/config.c
---- vdr-1.5.9-org/config.c	2007-08-12 14:09:37.000000000 +0200
-+++ vdr-1.5.9+noEPG/config.c	2007-10-12 16:25:28.000000000 +0200
-@@ -286,1 +286,3 @@
--  InitialVolume = -1;
-+  InitialVolume = -1;
-+  noEPGMode = 0;
+diff -urNad vdr-1.6.0~/config.c vdr-1.6.0/config.c
+--- vdr-1.6.0~/config.c	2008-05-11 03:35:16.000000000 +0200
++++ vdr-1.6.0/config.c	2008-05-11 03:35:44.000000000 +0200
+@@ -339,11 +339,20 @@
+   ShowRecLength = 0;
+   ShowProgressBar = 0;
+   MenuCmdPosition = 0;
++  noEPGMode=0;
 +  noEPGList=strdup("");
-@@ -450,1 +452,6 @@
--  else if (!strcasecmp(Name, "ShowReplayMode"))      ShowReplayMode     = atoi(Value);
-+  else if (!strcasecmp(Name, "ShowReplayMode"))      ShowReplayMode     = atoi(Value);
++}
++
++cSetup::~cSetup()
++{
++  free(noEPGList);
+ }
+ 
+ cSetup& cSetup::operator= (const cSetup &s)
+ {
+   memcpy(&__BeginData__, &s.__BeginData__, (char *)&s.__EndData__ - (char *)&s.__BeginData__);
++  free(noEPGList);
++  noEPGList = strdup(s.noEPGList);
+   return *this;
+ }
+ 
+@@ -504,6 +513,11 @@
+   else if (!strcasecmp(Name, "FontOsdSize"))         FontOsdSize        = atoi(Value);
+   else if (!strcasecmp(Name, "FontSmlSize"))         FontSmlSize        = atoi(Value);
+   else if (!strcasecmp(Name, "FontFixSize"))         FontFixSize        = atoi(Value);
 +  else if (!strcasecmp(Name, "noEPGMode"))           noEPGMode          = atoi(Value);
-+  else if (!strcasecmp(Name, "noEPGList")){
++  else if (!strcasecmp(Name, "noEPGList")) {
 +    free(noEPGList);
-+    noEPGList=strdup(Value);
++    noEPGList=strdup(Value ? Value : "");
 +  }
-@@ -533,1 +540,3 @@
--  Store("InitialVolume",      InitialVolume);
-+  Store("InitialVolume",      InitialVolume);
+   else if (!strcasecmp(Name, "MaxVideoFileSize"))    MaxVideoFileSize   = atoi(Value);
+   else if (!strcasecmp(Name, "SplitEditedFiles"))    SplitEditedFiles   = atoi(Value);
+   else if (!strcasecmp(Name, "MinEventTimeout"))     MinEventTimeout    = atoi(Value);
+@@ -599,6 +613,8 @@
+   Store("FontOsd",            FontOsd);
+   Store("FontSml",            FontSml);
+   Store("FontFix",            FontFix);
 +  Store("noEPGMode",          noEPGMode);
 +  Store("noEPGList",          noEPGList);
-diff -u -x '*~' -x runvdr -x Makefile vdr-1.5.9-org/config.h vdr-1.5.9+noEPG/config.h
---- vdr-1.5.9+jumpplay/config.h	2007-09-10 15:26:17.000000000 +0200
-+++ vdr-1.5.9+jumpplay+noepg/config.h	2007-10-13 18:18:37.000000000 +0200
-@@ -264,1 +264,3 @@
--  int InitialVolume;
-+  int InitialVolume;
-+  char *noEPGList;
+   Store("FontOsdSize",        FontOsdSize);
+   Store("FontSmlSize",        FontSmlSize);
+   Store("FontFixSize",        FontFixSize);
+diff -urNad vdr-1.6.0~/config.h vdr-1.6.0/config.h
+--- vdr-1.6.0~/config.h	2008-05-11 03:35:16.000000000 +0200
++++ vdr-1.6.0/config.h	2008-05-11 03:35:16.000000000 +0200
+@@ -280,6 +280,7 @@
+   int FontOsdSize;
+   int FontSmlSize;
+   int FontFixSize;
 +  int noEPGMode;
-diff -u -x '*~' -x runvdr -x Makefile vdr-1.5.9-org/eit.c vdr-1.5.9+noEPG/eit.c
---- vdr-1.5.9-org/eit.c	2007-07-28 15:16:43.000000000 +0200
-+++ vdr-1.5.9+noEPG/eit.c	2007-10-12 16:25:28.000000000 +0200
+   int MaxVideoFileSize;
+   int SplitEditedFiles;
+   int MinEventTimeout, MinUserInactivity;
+@@ -299,7 +300,9 @@
+   int EmergencyExit;
+   int ShowRecDate, ShowRecTime, ShowRecLength, ShowProgressBar, MenuCmdPosition;
+   int __EndData__;
++  char *noEPGList; // pointer not to be flat-copied
+   cSetup(void);
++  ~cSetup();
+   cSetup& operator= (const cSetup &s);
+   bool Load(const char *FileName);
+   bool Save(void);
+diff -urNad vdr-1.6.0~/eit.c vdr-1.6.0/eit.c
+--- vdr-1.6.0~/eit.c	2008-05-11 03:35:16.000000000 +0200
++++ vdr-1.6.0/eit.c	2008-05-11 03:35:16.000000000 +0200
 @@ -22,8 +22,28 @@
  class cEIT : public SI::EIT {
  public:
    cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data, bool OnlyRunningStatus = false);
++
 +private:
 +  bool allowedEPG(tChannelID kanalID);
    };
  
-+bool cEIT::allowedEPG(tChannelID kanalID){
++bool cEIT::allowedEPG(tChannelID kanalID) {
 +  bool rc;
 +
-+  if (Setup.noEPGMode == 1){
-+    rc=false;
-+    if (strstr(::Setup.noEPGList,kanalID.ToString())!=NULL){
-+      rc=true;
-+    }
-+  }else{
-+    rc=true;
-+    if (strstr(::Setup.noEPGList,kanalID.ToString())!=NULL){
-+      rc=false;
-+    }
-+  }
++  if (Setup.noEPGMode == 1) {
++     rc=false;
++     if (strstr(::Setup.noEPGList,kanalID.ToString())!=NULL)
++        rc=true;
++     }
++  else {
++     rc=true;
++     if (strstr(::Setup.noEPGList,kanalID.ToString())!=NULL)
++        rc=false;
++     }
 +
 +  return rc;
 +}
@@ -71,36 +105,23 @@
  cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data, bool OnlyRunningStatus)
  :SI::EIT(Data, false)
  {
-@@ -35,6 +55,15 @@
+@@ -35,6 +55,12 @@
    if (!channel)
       return; // only collect data for known channels
  
-+  // noepg >>>
-+  //only use epg from channels not blocked by noEPG-patch
++  // only use epg from channels not blocked by noEPG-patch
 +  tChannelID kanalID;
 +  kanalID=channel->GetChannelID();
-+  if (!allowedEPG(kanalID)){
++  if (!allowedEPG(kanalID))
 +    return;
-+  }
-+  // noepg <<<
 +
    cSchedule *pSchedule = (cSchedule *)Schedules->GetSchedule(channel, true);
  
    bool Empty = true;
-
-diff -u -x '*~' -x runvdr -x Makefile vdr-1.5.9-org/po/de_DE.po vdr-1.5.9+noEPG/po/de_DE.po
---- vdr-1.5.9-org/po/de_DE.po	2007-08-19 13:53:29.000000000 +0200
-+++ vdr-1.5.9+noEPG/po/de_DE.po	2007-10-12 16:26:36.000000000 +0200
-@@ -1268,1 +1284,4 @@
-+msgid "Setup.EPG$Mode of noEPG-Patch"
-+msgstr "Art des noEPG-Patches"
-+
-+msgid "VDR will shut down in %s minutes"
--msgid "VDR will shut down in %s minutes"
-diff -u -x '*~' -x runvdr -x Makefile vdr-1.5.9-org/po/de_DE.po vdr-1.5.9+noEPG/po/de_DE.po
---- vdr-1.5.9+jumpplay/menu.c	2007-09-10 15:26:17.000000000 +0200
-+++ vdr-1.5.9+jumpplay+noepg/menu.c	2007-10-13 18:30:33.000000000 +0200
-@@ -2307,6 +2307,7 @@
+diff -urNad vdr-1.6.0~/menu.c vdr-1.6.0/menu.c
+--- vdr-1.6.0~/menu.c	2008-05-11 03:35:16.000000000 +0200
++++ vdr-1.6.0/menu.c	2008-05-11 03:35:16.000000000 +0200
+@@ -2604,6 +2604,7 @@
  
  class cMenuSetupEPG : public cMenuSetupBase {
  private:
@@ -108,7 +129,7 @@
    int originalNumLanguages;
    int numLanguages;
    void Setup(void);
-@@ -2329,6 +2330,9 @@
+@@ -2626,6 +2627,9 @@
  {
    int current = Current();
  
@@ -118,7 +139,11 @@
    Clear();
  
    Add(new cMenuEditIntItem( tr("Setup.EPG$EPG scan timeout (h)"),      &data.EPGScanTimeout));
-@@ -2344,1 +2348,2 @@
--      Add(new cMenuEditStraItem(tr("Setup.EPG$Preferred language"),    &data.EPGLanguages[i], I18nLanguages()->Size(), &I18nLanguages()->At(0)));
-+      Add(new cMenuEditStraItem(tr("Setup.EPG$Preferred language"),    &data.EPGLanguages[i], I18nLanguages()->Size(), &I18nLanguages()->At(0)));
+@@ -2644,6 +2648,7 @@
+   Add(new cMenuEditBoolItem(tr("Setup.EPG$extern double Epg entry"),   &data.DoubleEpgAction, "adjust", "delete"));
+   Add(new cMenuEditBoolItem(tr("Setup.EPG$Mix intern and extern EPG"), &data.MixEpgAction));
+   Add(new cMenuEditBoolItem(tr("Setup.EPG$Disable running VPS event"), &data.DisableVPS));
 +  Add(new cMenuEditStraItem(tr("Setup.EPG$Mode noEPG-Patch"),          &data.noEPGMode, 2, noEPGModes));
+ 
+   SetCurrent(Get(current));
+   Display();

Modified: vdr/vdr/trunk/debian/patches/opt-48-x_pin.dpatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/opt-48-x_pin.dpatch?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/opt-48-x_pin.dpatch (original)
+++ vdr/vdr/trunk/debian/patches/opt-48-x_pin.dpatch Wed May 21 09:24:10 2008
@@ -13,8 +13,8 @@
 
 @DPATCH@
 diff -urNad vdr-1.6.0~/Makefile vdr-1.6.0/Makefile
---- vdr-1.6.0~/Makefile	2008-03-23 13:52:42.000000000 +0100
-+++ vdr-1.6.0/Makefile	2008-03-23 13:52:42.000000000 +0100
+--- vdr-1.6.0~/Makefile	2008-05-11 01:08:05.000000000 +0200
++++ vdr-1.6.0/Makefile	2008-05-11 01:08:06.000000000 +0200
 @@ -45,6 +45,8 @@
  
  OBJS += vdrttxtsubshooks.o
@@ -26,7 +26,7 @@
  endif
 diff -urNad vdr-1.6.0~/childlock.c vdr-1.6.0/childlock.c
 --- vdr-1.6.0~/childlock.c	1970-01-01 01:00:00.000000000 +0100
-+++ vdr-1.6.0/childlock.c	2008-03-23 13:52:42.000000000 +0100
++++ vdr-1.6.0/childlock.c	2008-05-11 01:08:06.000000000 +0200
 @@ -0,0 +1,166 @@
 +#include "childlock.h"
 +#include "childlockservice.h"
@@ -196,7 +196,7 @@
 +}
 diff -urNad vdr-1.6.0~/childlock.h vdr-1.6.0/childlock.h
 --- vdr-1.6.0~/childlock.h	1970-01-01 01:00:00.000000000 +0100
-+++ vdr-1.6.0/childlock.h	2008-03-23 13:52:42.000000000 +0100
++++ vdr-1.6.0/childlock.h	2008-05-11 01:08:06.000000000 +0200
 @@ -0,0 +1,47 @@
 +#ifndef __CHILDLOCK_H
 +#define __CHILDLOCK_H
@@ -247,7 +247,7 @@
 +#endif
 diff -urNad vdr-1.6.0~/childlockservice.h vdr-1.6.0/childlockservice.h
 --- vdr-1.6.0~/childlockservice.h	1970-01-01 01:00:00.000000000 +0100
-+++ vdr-1.6.0/childlockservice.h	2008-03-23 13:52:42.000000000 +0100
++++ vdr-1.6.0/childlockservice.h	2008-05-11 01:08:06.000000000 +0200
 @@ -0,0 +1,46 @@
 +#ifndef __CHILDLOCKSERVICE_H
 +#define __CHILDLOCKSERVICE_H
@@ -296,8 +296,8 @@
 +};
 +#endif
 diff -urNad vdr-1.6.0~/device.c vdr-1.6.0/device.c
---- vdr-1.6.0~/device.c	2008-03-23 13:52:42.000000000 +0100
-+++ vdr-1.6.0/device.c	2008-03-23 13:52:42.000000000 +0100
+--- vdr-1.6.0~/device.c	2008-05-11 01:08:05.000000000 +0200
++++ vdr-1.6.0/device.c	2008-05-11 01:08:06.000000000 +0200
 @@ -18,6 +18,7 @@
  #include "receiver.h"
  #include "status.h"
@@ -325,8 +325,8 @@
       StopReplay();
       DELETENULL(liveSubtitle);
 diff -urNad vdr-1.6.0~/menu.c vdr-1.6.0/menu.c
---- vdr-1.6.0~/menu.c	2008-03-23 13:52:42.000000000 +0100
-+++ vdr-1.6.0/menu.c	2008-03-23 13:54:32.000000000 +0100
+--- vdr-1.6.0~/menu.c	2008-05-11 01:08:05.000000000 +0200
++++ vdr-1.6.0/menu.c	2008-05-11 01:09:10.000000000 +0200
 @@ -32,6 +32,7 @@
  #include "vdrttxtsubshooks.h"
  #include "videodir.h"
@@ -335,18 +335,17 @@
  
  #define MAXWAIT4EPGINFO   3 // seconds
  #define MODETIMEOUT       3 // seconds
-@@ -756,6 +757,10 @@
-      Add(new cMenuEditBitItem( tr("VPS"),          &data.flags, tfVps));
+@@ -757,6 +758,9 @@
       Add(new cMenuEditIntItem( tr("Priority"),     &data.priority, 0, MAXPRIORITY));
       Add(new cMenuEditIntItem( tr("Lifetime"),     &data.lifetime, 0, MAXLIFETIME));
-+
+ 
 +     if (PinPatch::ChildLock::IsUnlocked())
 +       Add(new cMenuEditBitItem(tr("Timer$Childlock"), &data.flags, tfProtected));
 +
-      Add(new cMenuEditStrItem( tr("File"),          data.file, sizeof(data.file)));
-      SetFirstDayItem();
-      }
-@@ -2301,7 +2306,8 @@
+      char* p = strrchr(data.file, '~');
+      if (p) {
+         p++;
+@@ -2344,7 +2348,8 @@
    for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording)) {
        if (!base || (strstr(recording->Name(), base) == recording->Name() && recording->Name()[strlen(base)] == '~')) {
           cMenuRecordingItem *Item = new cMenuRecordingItem(recording, level);
@@ -356,7 +355,7 @@
              Add(Item);
              LastItem = Item;
              free(LastItemText);
-@@ -2364,6 +2370,9 @@
+@@ -2407,6 +2412,9 @@
  {
    cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
    if (ri) {
@@ -366,7 +365,7 @@
       if (ri->IsDirectory())
          Open();
       else {
-@@ -3396,6 +3405,8 @@
+@@ -3439,6 +3447,8 @@
              }
           else if ((*i)->IsPluginItem()) {
              const char *item = (*i)->PluginMenuEntry();
@@ -375,7 +374,7 @@
              if (item)
                osdItem = new cMenuPluginItem(hk(item), (*i)->PluginIndex());
              }
-@@ -3410,9 +3421,13 @@
+@@ -3453,9 +3463,13 @@
  
    // Basic menu items:
  
@@ -389,7 +388,7 @@
    Add(new cOsdItem(hk(tr("Recordings")), osRecordings));
  
    // Plugins:
-@@ -3420,18 +3435,22 @@
+@@ -3463,18 +3477,22 @@
    for (int i = 0; ; i++) {
        cPlugin *p = cPluginManager::GetPlugin(i);
        if (p) {
@@ -412,7 +411,7 @@
       Add(new cOsdItem(hk(tr("Commands")),  osCommands));
  
    }
-@@ -3512,6 +3531,11 @@
+@@ -3555,6 +3573,11 @@
    eOSState state = cOsdMenu::ProcessKey(Key);
    HadSubMenu |= HasSubMenu();
  
@@ -424,7 +423,7 @@
    cOsdMenu *menu = NULL;
    switch (state) {
      case osSchedule:
-@@ -3558,6 +3582,7 @@
+@@ -3601,6 +3624,7 @@
                           if (item) {
                              cPlugin *p = cPluginManager::GetPlugin(item->PluginIndex());
                              if (p) {
@@ -432,7 +431,7 @@
                                 cOsdObject *menu = p->MainMenuAction();
                                 if (menu) {
                                    if (menu->IsMenu())
-@@ -3569,6 +3594,7 @@
+@@ -3612,6 +3636,7 @@
                                    }
                                 }
                              }
@@ -440,7 +439,7 @@
                           state = osEnd;
                         }
                         break;
-@@ -3771,6 +3797,7 @@
+@@ -3814,6 +3839,7 @@
    if (Direction) {
       while (Channel) {
             Channel = Direction > 0 ? Channels.Next(Channel) : Channels.Prev(Channel);
@@ -448,7 +447,7 @@
             if (Channel && !Channel->GroupSep() && cDevice::GetDevice(Channel, 0, true))
                return Channel;
             }
-@@ -4405,6 +4432,7 @@
+@@ -4448,6 +4474,7 @@
             for (int i = 0; i < MAXRECORDCONTROLS; i++) {
                 if (!RecordControls[i]) {
                    RecordControls[i] = new cRecordControl(device, Timer, Pause);
@@ -457,8 +456,8 @@
                    }
                 }
 diff -urNad vdr-1.6.0~/po/de_DE.po vdr-1.6.0/po/de_DE.po
---- vdr-1.6.0~/po/de_DE.po	2008-03-23 13:52:42.000000000 +0100
-+++ vdr-1.6.0/po/de_DE.po	2008-03-23 13:52:42.000000000 +0100
+--- vdr-1.6.0~/po/de_DE.po	2008-05-11 01:08:05.000000000 +0200
++++ vdr-1.6.0/po/de_DE.po	2008-05-11 01:08:06.000000000 +0200
 @@ -360,6 +360,9 @@
  msgid "Lifetime"
  msgstr "Lebensdauer"
@@ -470,8 +469,8 @@
  msgstr "Datei"
  
 diff -urNad vdr-1.6.0~/po/fr_FR.po vdr-1.6.0/po/fr_FR.po
---- vdr-1.6.0~/po/fr_FR.po	2008-03-23 13:52:42.000000000 +0100
-+++ vdr-1.6.0/po/fr_FR.po	2008-03-23 13:52:42.000000000 +0100
+--- vdr-1.6.0~/po/fr_FR.po	2008-05-11 01:08:05.000000000 +0200
++++ vdr-1.6.0/po/fr_FR.po	2008-05-11 01:08:06.000000000 +0200
 @@ -366,6 +366,9 @@
  msgid "Lifetime"
  msgstr "Durée de vie"
@@ -483,8 +482,8 @@
  msgstr "Fichier"
  
 diff -urNad vdr-1.6.0~/timers.c vdr-1.6.0/timers.c
---- vdr-1.6.0~/timers.c	2008-02-16 15:47:40.000000000 +0100
-+++ vdr-1.6.0/timers.c	2008-03-23 13:52:42.000000000 +0100
+--- vdr-1.6.0~/timers.c	2008-05-11 01:08:05.000000000 +0200
++++ vdr-1.6.0/timers.c	2008-05-11 01:08:06.000000000 +0200
 @@ -16,6 +16,7 @@
  #include "recording.h"
  #include "remote.h"
@@ -527,7 +526,7 @@
  }
  
  cTimer::cTimer(const cTimer &Timer)
-@@ -258,6 +260,8 @@
+@@ -259,6 +261,8 @@
    return ""; // not NULL, so the caller can always use the result
  }
  
@@ -536,7 +535,7 @@
  bool cTimer::Parse(const char *s)
  {
    char *channelbuffer = NULL;
-@@ -312,6 +316,8 @@
+@@ -313,6 +317,8 @@
          result = false;
          }
       }
@@ -545,7 +544,7 @@
    free(channelbuffer);
    free(daybuffer);
    free(filebuffer);
-@@ -581,6 +587,26 @@
+@@ -582,6 +588,26 @@
  void cTimer::SetFlags(uint Flags)
  {
    flags |= Flags;
@@ -574,7 +573,7 @@
  void cTimer::ClrFlags(uint Flags)
 diff -urNad vdr-1.6.0~/timers.h vdr-1.6.0/timers.h
 --- vdr-1.6.0~/timers.h	2008-02-16 15:33:23.000000000 +0100
-+++ vdr-1.6.0/timers.h	2008-03-23 13:52:42.000000000 +0100
++++ vdr-1.6.0/timers.h	2008-05-11 01:08:06.000000000 +0200
 @@ -20,6 +20,7 @@
                     tfInstant   = 0x0002,
                     tfVps       = 0x0004,
@@ -584,8 +583,8 @@
                   };
  enum eTimerMatch { tmNone, tmPartial, tmFull };
 diff -urNad vdr-1.6.0~/vdr.c vdr-1.6.0/vdr.c
---- vdr-1.6.0~/vdr.c	2008-03-23 13:52:42.000000000 +0100
-+++ vdr-1.6.0/vdr.c	2008-03-23 13:52:42.000000000 +0100
+--- vdr-1.6.0~/vdr.c	2008-05-11 01:08:05.000000000 +0200
++++ vdr-1.6.0/vdr.c	2008-05-11 01:08:06.000000000 +0200
 @@ -64,6 +64,7 @@
  #include "tools.h"
  #include "transfer.h"

Modified: vdr/vdr/trunk/debian/patches/opt-49-x_pvrinput.dpatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/opt-49-x_pvrinput.dpatch?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/opt-49-x_pvrinput.dpatch (original)
+++ vdr/vdr/trunk/debian/patches/opt-49-x_pvrinput.dpatch Wed May 21 09:24:10 2008
@@ -5,6 +5,9 @@
 ## DP: This patch is required by the pvrinput plugin and was taken from
 ## DP: version 2007-11-29 of the plugin.
 ## DP: http://drseltsam.device.name/vdr/pvr/src/pvrinput
+## DP:
+## DP: 2008-05-14: Added CA-Id's 0xA1 and 0xA2, required by pvrusb2
+## DP:             (as suggested by Christian Jarczyk)
 
 @DPATCH@
 diff -urNad vdr-1.5.15~/dvbdevice.c vdr-1.5.15/dvbdevice.c
@@ -15,7 +18,7 @@
    bool hasPriority = Priority < 0 || Priority > this->Priority();
    bool needsDetachReceivers = false;
 -
-+  if (Channel->Ca(0) == 0xA1) return false; /* this caid marks a pvrinput plugin channel, no dvb */
++  if (Channel->Ca(0) == 0xA0 || Channel->Ca(0) == 0xA1 || Channel->Ca(0) == 0xA2) return false; /* this caid marks a pvrinput plugin channel, no dvb */
    if (ProvidesSource(Channel->Source())) {
       result = hasPriority;
       if (Priority >= 0 && Receiving(true)) {

Modified: vdr/vdr/trunk/debian/patches/patchtest
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/patchtest?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/patchtest (original)
+++ vdr/vdr/trunk/debian/patches/patchtest Wed May 21 09:24:10 2008
@@ -38,7 +38,8 @@
     opt-48-x_pin \
     opt-49-x_pvrinput \
     opt-50_graphtft \
-    opt-51_cuttime"
+    opt-51_cuttime \
+    opt-52_hard_link_cutter"
 testpatch="$standard \
     opt-20_liemikuutio \
     opt-24_jumpplay \
@@ -56,7 +57,9 @@
     opt-45_yaepg \
     opt-48-x_pin \
     opt-49-x_pvrinput \
-    opt-50_graphtft"
+    opt-50_graphtft \
+    opt-51_cuttime \
+    opt-52_hard_link_cutter"
 mustfail_patch="XX_patchtest-patch-error"
 mustfail_compile="XX_patchtest-compile-error"
 

Modified: vdr/vdr/trunk/debian/rules
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/rules?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/rules (original)
+++ vdr/vdr/trunk/debian/rules Wed May 21 09:24:10 2008
@@ -23,22 +23,26 @@
 unpatch:
 endif
 
-DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl
-MANPAGES = debian/vdrdbg-buildpackage.1 debian/debugvdr.1 debian/vdr-dbg.1 \
-           debian/vdrleaktest.1
+TXT2MANPAGES = debian/vdr-dbg.1
+MANPAGES = debian/vdrdbg-buildpackage.1 debian/debugvdr.1 debian/vdrleaktest.1
 
 MAKE_OPTIONS = REMOTE=LIRC CONFDIR=/var/lib/vdr LOCDIR=/usr/share/locale \
                VIDEODIR=/var/lib/video.00 PLUGINLIBDIR=/usr/lib/vdr/plugins
 
-%.1: %.1.xml
-	xsltproc -o $@ --nonet $(DB2MAN) $<
+$(MANPAGES): %.1: %
+	sh $< -h | \
+	  eval "`cat $< | grep "^### txt2man" | sed "s/### //"`" >$@
+
+$(TXT2MANPAGES): %.1: %.1.txt
+	cat $< | grep -v "^###" | \
+	  eval "`cat $< | grep "^### txt2man" | sed "s/### //"`" >$@
 
 configure: configure-stamp
 configure-stamp: patch-stamp
 	dh_testdir
 	touch configure-stamp
 
-build: build-stamp $(MANPAGES)
+build: build-stamp $(MANPAGES) $(TXT2MANPAGES)
 build-stamp: configure-stamp
 	dh_testdir
 

Modified: vdr/vdr/trunk/debian/vdrdbg-buildpackage
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/vdrdbg-buildpackage?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/vdrdbg-buildpackage (original)
+++ vdr/vdr/trunk/debian/vdrdbg-buildpackage Wed May 21 09:24:10 2008
@@ -1,4 +1,44 @@
 #!/bin/sh
+
+## NAME
+##   vdrdbg-buildpackage - builds a VDR plugin for debugging
+## 
+## SYNOPSIS
+##   vdrdbg-buildpackage [dpkg-puildpackage-options]
+## 
+## DESCRIPTION
+##   vdrdbg-buildpackage is a small wrapper for dpkg-buildpackage, which
+##   sets all options needed to compile a VDR plugin for debugging.
+## 
+## OPTIONS
+##   -h This help
+## 
+##   All dpkg-buildpackage options are available for vdrdbg-buildpackage
+##   as well.
+## 
+## SEE ALSO
+##   dpkg-buildpackage (1)
+## 
+## AUTHOR
+##   This manual page was written by Tobias Grimm <tg at e-tobi.net>
+## 
+### txt2man -s 1 -t VDRDBG-BUILDPACKAGE -v "Create VDR dbeug plugin package"
+
+usage()
+{
+    local HELPCOMMENTPATTERN="^## "
+    cat "$0" | grep "$HELPCOMMENTPATTERN" | sed "s/$HELPCOMMENTPATTERN//"
+}
+
+while getopts h opt
+do
+    case $opt in
+        h)
+            usage
+            exit
+            ;;
+    esac
+done
 
 export DEB_BUILD_OPTIONS="$DEB_BUILD_OPTIONS noopt nostrip"
 export VDRDEBUG=yes

Modified: vdr/vdr/trunk/debian/vdrleaktest
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/vdrleaktest?rev=6952&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/vdrleaktest (original)
+++ vdr/vdr/trunk/debian/vdrleaktest Wed May 21 09:24:10 2008
@@ -1,4 +1,49 @@
 #!/bin/bash
+
+# We need bash here, because of the *-loader.sh scripts containing bashisms!
+
+## NAME
+##   vdrleaktest - Runs the VDR debugging binary with Valgrind.
+## 
+## SYNOPSIS
+##   vdrleaktest [-h] [vdr-options]
+## 
+## DESCRIPTION
+##   vdrleaktest will stop any running VDR daemon and start the debugging
+##   version of VDR with Valgrind. No plugins will be loaded automatically.
+##   In order to test VDR plugins with vdrleaktest, you need to pass the
+##   appropriate VDR arguments (e.g. -P plugin-name).
+## 
+## OPTIONS
+##   -h This help
+## 
+##   All other options will be passed down to VDR
+## 
+## SEE ALSO
+##   vdr(1), valgrind(1)
+## 
+## AUTHOR
+##   This manual page was written by Tobias Grimm <tg at e-tobi.net>
+## 
+### txt2man -s 1 -t VDRLEAKTEST -v "Start VDR with Valgrind"
+
+usage()
+{
+    local HELPCOMMENTPATTERN="^## "
+    cat "$0" | grep "$HELPCOMMENTPATTERN" | sed "s/$HELPCOMMENTPATTERN//"
+}
+
+
+while getopts h opt
+do
+    case $opt in
+        h)
+            usage
+            exit
+            ;;
+    esac
+done
+
 #
 # c't-VDR Memory Leak Tester
 #




More information about the pkg-vdr-dvb-changes mailing list