diff -Naur vdr-1.5.8.org/menuitems.c vdr-1.5.8/menuitems.c --- vdr-1.5.8.org/menuitems.c 2007-08-17 09:48:07.000000000 -0400 +++ vdr-1.5.8/menuitems.c 2007-10-01 11:31:17.902274337 -0400 @@ -32,10 +32,16 @@ free(name); } -void cMenuEditItem::SetValue(const char *Value) +void cMenuEditItem::SetValue(const char *Value, bool HasPre, bool HasSucc) { char *buffer = NULL; - asprintf(&buffer, "%s:\t%s", name, Value); + const char* fmt; + if (HasPre) + fmt = HasSucc ? "%s:\t<%s>" : "%s\t<%s"; + else + fmt = HasSucc ? "%s\t%s>" : "%s\t%s"; + + asprintf(&buffer, fmt, name, Value); SetText(buffer, false); cStatus::MsgOsdCurrentItem(buffer); } @@ -66,7 +72,7 @@ else { char buf[16]; snprintf(buf, sizeof(buf), "%d", *value); - SetValue(buf); + SetValue(buf, (*value > min), (*value < max)); } } @@ -127,7 +133,7 @@ { char buf[16]; snprintf(buf, sizeof(buf), "%s", *value ? trueString : falseString); - SetValue(buf); + SetValue(buf, *value, !*value); } // --- cMenuEditBitItem ------------------------------------------------------ @@ -631,7 +637,7 @@ void cMenuEditStraItem::Set(void) { - SetValue(strings[*value]); + SetValue(strings[*value], (*value > min), (*value < max)); } // --- cMenuEditChanItem ----------------------------------------------------- @@ -649,7 +655,7 @@ char buf[255]; cChannel *channel = Channels.GetByNumber(*value); snprintf(buf, sizeof(buf), "%d %s", *value, channel ? channel->Name() : ""); - SetValue(buf); + SetValue(buf, (*value > 1), (*value < Channels.MaxNumber())); } else if (noneString) SetValue(noneString); diff -Naur vdr-1.5.8.org/menuitems.h vdr-1.5.8/menuitems.h --- vdr-1.5.8.org/menuitems.h 2007-06-08 07:53:37.000000000 -0400 +++ vdr-1.5.8/menuitems.h 2007-10-01 11:31:17.903274412 -0400 @@ -20,7 +20,7 @@ public: cMenuEditItem(const char *Name); ~cMenuEditItem(); - void SetValue(const char *Value); + void cMenuEditItem::SetValue(const char *Value, bool HasPre=false, bool HasSucc=false); }; class cMenuEditIntItem : public cMenuEditItem {