summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--menu.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/menu.c b/menu.c
index de5969a5..e30be39e 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 1.344 2005/03/19 14:23:43 kls Exp $
+ * $Id: menu.c 1.345 2005/03/19 15:45:19 kls Exp $
*/
#include "menu.h"
@@ -732,13 +732,28 @@ int cMenuTimerItem::Compare(const cListObject &ListObject) const
void cMenuTimerItem::Set(void)
{
+ cString day, name("");
+ if (timer->WeekDays())
+ day = timer->PrintDay(0, timer->WeekDays());
+ else if (timer->Day() - time(NULL) < 28 * SECSINDAY) {
+ day = itoa(timer->GetMDay(timer->Day()));
+ name = WeekDayName(timer->Day());
+ }
+ else {
+ struct tm tm_r;
+ time_t Day = timer->Day();
+ localtime_r(&Day, &tm_r);
+ char buffer[16];
+ strftime(buffer, sizeof(buffer), "%Y%m%d", &tm_r);
+ day = buffer;
+ }
char *buffer = NULL;
asprintf(&buffer, "%c\t%d\t%s%s%s\t%02d:%02d\t%02d:%02d\t%s",
!(timer->HasFlags(tfActive)) ? ' ' : timer->FirstDay() ? '!' : timer->Recording() ? '#' : '>',
timer->Channel()->Number(),
- timer->IsSingleEvent() ? *WeekDayName(timer->StartTime()) : "",
- timer->IsSingleEvent() ? " " : "",
- *timer->PrintDay(timer->Day(), timer->WeekDays()),
+ *name,
+ *name && **name ? " " : "",
+ *day,
timer->Start() / 100,
timer->Start() % 100,
timer->Stop() / 100,