summaryrefslogtreecommitdiff
path: root/noannounce.c
diff options
context:
space:
mode:
Diffstat (limited to 'noannounce.c')
-rw-r--r--noannounce.c150
1 files changed, 74 insertions, 76 deletions
diff --git a/noannounce.c b/noannounce.c
index 09cbb97..70d7745 100644
--- a/noannounce.c
+++ b/noannounce.c
@@ -39,24 +39,23 @@ cNoAnnounce::cNoAnnounce(void)
cNoAnnounce::cNoAnnounce(const cEvent* e, time_t NextAnnounce)
{
- title = shortText = "";
- startTime = 0;
- buffer = NULL;
- if (e)
- {
- if (e->Title()) title = e->Title();
- if (e->ShortText()) shortText = e->ShortText();
- channelID = e->ChannelID();
- startTime = e->StartTime();
- nextAnnounce = NextAnnounce;
- }
+ title = shortText = "";
+ startTime = 0;
+ buffer = NULL;
+ if (e) {
+ if (e->Title()) title = e->Title();
+ if (e->ShortText()) shortText = e->ShortText();
+ channelID = e->ChannelID();
+ startTime = e->StartTime();
+ nextAnnounce = NextAnnounce;
+ }
}
cNoAnnounce::~cNoAnnounce(void)
{
if (buffer) {
- free(buffer);
- buffer = NULL;
+ free(buffer);
+ buffer = NULL;
}
}
@@ -81,38 +80,42 @@ bool cNoAnnounce::Parse(const char *s)
pos_next = pos + strlen(pos);
if (*pos_next == '\n') *pos_next = 0;
while (*pos) {
- while (*pos == ' ') pos++;
- if (*pos) {
- if (*pos != ':') {
- pos_next = strchr(pos, ':');
- if (!pos_next)
- pos_next = pos + strlen(pos);
- valuelen = pos_next - pos + 1;
- if (valuelen > MAXVALUELEN)
- {
- LogFile.eSysLog("entry '%s' is too long. Will be truncated!", pos);
- valuelen = MAXVALUELEN;
- }
- strn0cpy(value, pos, valuelen);
- pos = pos_next;
- switch (parameter) {
- case 1: title = value;
- break;
- case 2: shortText = value;
- break;
- case 3: channelID = tChannelID::FromString(value);
- break;
- case 4: startTime = atol(value);
- break;
- case 5: nextAnnounce = atol(value);
- break;
- default:
- break;
- } //switch
- }
- parameter++;
- }
- if (*pos) pos++;
+ while (*pos == ' ') pos++;
+ if (*pos) {
+ if (*pos != ':') {
+ pos_next = strchr(pos, ':');
+ if (!pos_next)
+ pos_next = pos + strlen(pos);
+ valuelen = pos_next - pos + 1;
+ if (valuelen > MAXVALUELEN) {
+ LogFile.eSysLog("entry '%s' is too long. Will be truncated!", pos);
+ valuelen = MAXVALUELEN;
+ }
+ strn0cpy(value, pos, valuelen);
+ pos = pos_next;
+ switch (parameter) {
+ case 1:
+ title = value;
+ break;
+ case 2:
+ shortText = value;
+ break;
+ case 3:
+ channelID = tChannelID::FromString(value);
+ break;
+ case 4:
+ startTime = atol(value);
+ break;
+ case 5:
+ nextAnnounce = atol(value);
+ break;
+ default:
+ break;
+ } //switch
+ }
+ parameter++;
+ }
+ if (*pos) pos++;
} //while
title = ReplaceAll(title, "|", ":");
@@ -126,11 +129,11 @@ const char *cNoAnnounce::ToText(void) const
{
free(buffer);
msprintf(&buffer, "%s:%s:%s:%ld:%ld",
- ReplaceAll(title, ":", "|").c_str(),
- ReplaceAll(shortText, ":", "|").c_str(),
- *channelID.ToString(),
- startTime,
- nextAnnounce);
+ ReplaceAll(title, ":", "|").c_str(),
+ ReplaceAll(shortText, ":", "|").c_str(),
+ *channelID.ToString(),
+ startTime,
+ nextAnnounce);
return buffer;
}
@@ -142,41 +145,36 @@ bool cNoAnnounce::Save(FILE *f)
// -- cNoAnnounces -----------------------------------------------------------------
cNoAnnounce* cNoAnnounces::InList(const cEvent* e)
{
- cNoAnnounce noAnnounceTemp(e);
- cNoAnnounce* noAnnounce = First();
- while (noAnnounce)
- {
- if (*noAnnounce == noAnnounceTemp)
- {
- if (noAnnounce->nextAnnounce > 0 && noAnnounce->nextAnnounce < time(NULL))
- {
- Del(noAnnounce); // active again
- return NULL;
- }
- else
- return noAnnounce;
- }
- noAnnounce = Next(noAnnounce);
- }
- return NULL;
+ cNoAnnounce noAnnounceTemp(e);
+ cNoAnnounce* noAnnounce = First();
+ while (noAnnounce) {
+ if (*noAnnounce == noAnnounceTemp) {
+ if (noAnnounce->nextAnnounce > 0 && noAnnounce->nextAnnounce < time(NULL)) {
+ Del(noAnnounce); // active again
+ return NULL;
+ } else
+ return noAnnounce;
+ }
+ noAnnounce = Next(noAnnounce);
+ }
+ return NULL;
}
void cNoAnnounces::ClearOutdated(void)
{
// remove outdated items
cNoAnnounce* noAnnounce = First();
- while (noAnnounce)
- {
- cNoAnnounce* noAnnounceNext = Next(noAnnounce);
- if (noAnnounce->startTime < time(NULL))
- Del(noAnnounce);
- noAnnounce = noAnnounceNext;
+ while (noAnnounce) {
+ cNoAnnounce* noAnnounceNext = Next(noAnnounce);
+ if (noAnnounce->startTime < time(NULL))
+ Del(noAnnounce);
+ noAnnounce = noAnnounceNext;
}
}
void cNoAnnounces::UpdateNextAnnounce(const cEvent* e, time_t NextAnnounce)
{
- cNoAnnounce* noAnnounce = InList(e);
- if (noAnnounce)
- noAnnounce->nextAnnounce = NextAnnounce;
+ cNoAnnounce* noAnnounce = InList(e);
+ if (noAnnounce)
+ noAnnounce->nextAnnounce = NextAnnounce;
}