diff options
Diffstat (limited to 'noannounce.c')
-rw-r--r-- | noannounce.c | 150 |
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; } |