commit 95dd38f361630f81f7970286547216b6e35abafd
parent 0c509625066b59346b6a0be6bfaf96bfeb0fa0db
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Wed,  2 Apr 2014 16:01:02 +0200

sfeed_stats: improve

Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>

Diffstat:
Msfeed_stats.c | 26+++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/sfeed_stats.c b/sfeed_stats.c @@ -25,11 +25,11 @@ die(const char *s) { int main(void) { - char *fields[FieldLast]; - unsigned long totalfeeds = 0, totalnew = 0; + char *fields[FieldLast], timenewestformat[64] = ""; + unsigned long totalfeeds = 0, totalnew = 0, totalitems = 0; unsigned int islink, isnew; struct feed *f, *feedcurrent = NULL; - time_t parsedtime, comparetime; + time_t parsedtime, comparetime, timenewest = 0; size_t size = 0; atexit(cleanup); @@ -55,10 +55,15 @@ main(void) { feedcurrent = f; feeds = feedcurrent; /* first item. */ } - if(isnew && parsedtime > feedcurrent->timenewest) { + if(parsedtime > timenewest) { + timenewest = parsedtime; + strncpy(timenewestformat, fields[FieldTimeFormatted], + sizeof(timenewestformat)); /* TODO: strlcpy */ + } + if(parsedtime > feedcurrent->timenewest) { feedcurrent->timenewest = parsedtime; strncpy(feedcurrent->timenewestformat, fields[FieldTimeFormatted], - sizeof(feedcurrent->timenewestformat)); + sizeof(feedcurrent->timenewestformat)); /* TODO: strlcpy */ } /* TODO: memcpy and make feedcurrent->name static? */ @@ -75,17 +80,20 @@ main(void) { totalnew += isnew; feedcurrent->totalnew += isnew; feedcurrent->total++; + totalitems++; } - printf("Total new: %lu\n", totalnew); for(feedcurrent = feeds; feedcurrent; feedcurrent = feedcurrent->next) { if(!feedcurrent->name || feedcurrent->name[0] == '\0') continue; /* printfeednameid(feedcurrent->name, stdout);*/ - fprintf(stdout, "[%4lu / %4lu] %-20s", feedcurrent->totalnew, feedcurrent->total, - feedcurrent->name); + fprintf(stdout, "%c %-20.20s [%4lu/%-4lu]", feedcurrent->totalnew > 0 ? 'N' : ' ', + feedcurrent->name, feedcurrent->totalnew, feedcurrent->total); if(feedcurrent->timenewestformat && feedcurrent->timenewestformat[0]) - fprintf(stdout, " (newest %s)", feedcurrent->timenewestformat); + fprintf(stdout, " %s", feedcurrent->timenewestformat); putchar('\n'); } + printf(" ================================\n"); + printf("%c %-20.20s [%4lu/%-4lu] %s\n", totalnew > 0 ? 'N' : ' ', "Total:", + totalnew, totalitems, timenewestformat); return EXIT_SUCCESS; }