itvote.c: improve display of poll files - vote - simple cgi voting system for web and gopher Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/vote URL:git://src.adamsgaard.dk/vote mx1.adamsgaard.dk 70 1Log /src/vote/log.gph mx1.adamsgaard.dk 70 1Files /src/vote/files.gph mx1.adamsgaard.dk 70 1Refs /src/vote/refs.gph mx1.adamsgaard.dk 70 1README /src/vote/file/README.gph mx1.adamsgaard.dk 70 1LICENSE /src/vote/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit 10c2ffb581321cb59e676d3f577ce0946debe5c6 /src/vote/commit/10c2ffb581321cb59e676d3f577ce0946debe5c6.gph mx1.adamsgaard.dk 70 1parent 9afaec1473d2044388e45ede5f1a4ed38d198939 /src/vote/commit/9afaec1473d2044388e45ede5f1a4ed38d198939.gph mx1.adamsgaard.dk 70 hAuthor: Anders Damsgaard URL:mailto:anders@adamsgaard.dk mx1.adamsgaard.dk 70 iDate: Sun, 27 Sep 2020 10:05:36 +0200 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 ivote.c: improve display of poll files Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M vote.c | 50 +++++++++++++++++++++++++++++-- Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i1 file changed, 48 insertions(+), 2 deletions(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/vote.c b/vote.c /src/vote/file/vote.c.gph mx1.adamsgaard.dk 70 it@@ -50,6 +50,53 @@ print_html_foot() Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i void Err mx1.adamsgaard.dk 70 i+print_poll_line(char *line) Err mx1.adamsgaard.dk 70 i+{ Err mx1.adamsgaard.dk 70 i+ printf(""); Err mx1.adamsgaard.dk 70 i+ while (*line) { Err mx1.adamsgaard.dk 70 i+ switch(*line) { Err mx1.adamsgaard.dk 70 i+ case '\t': Err mx1.adamsgaard.dk 70 i+ printf(""); Err mx1.adamsgaard.dk 70 i+ break; Err mx1.adamsgaard.dk 70 i+ default: Err mx1.adamsgaard.dk 70 i+ putchar(*line); Err mx1.adamsgaard.dk 70 i+ break; Err mx1.adamsgaard.dk 70 i+ } Err mx1.adamsgaard.dk 70 i+ (void)*line++; Err mx1.adamsgaard.dk 70 i+ } Err mx1.adamsgaard.dk 70 i+ puts(""); Err mx1.adamsgaard.dk 70 i+} Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+void Err mx1.adamsgaard.dk 70 i+print_poll_file(FILE *fp) Err mx1.adamsgaard.dk 70 i+{ Err mx1.adamsgaard.dk 70 i+ char *line = NULL; Err mx1.adamsgaard.dk 70 i+ size_t linesize = 0; Err mx1.adamsgaard.dk 70 i+ ssize_t linelen; Err mx1.adamsgaard.dk 70 i+ unsigned int lineno = 0; Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ while ((linelen = getline(&line, &linesize, fp)) != -1) { Err mx1.adamsgaard.dk 70 i+ lineno++; Err mx1.adamsgaard.dk 70 i+ if (line[linelen - 1] == '\n') Err mx1.adamsgaard.dk 70 i+ line[--linelen] = '\0'; Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ if (lineno == 1) { Err mx1.adamsgaard.dk 70 i+ printf("

"); Err mx1.adamsgaard.dk 70 i+ fwrite(line, linelen, 1, stdout); Err mx1.adamsgaard.dk 70 i+ printf("

"); Err mx1.adamsgaard.dk 70 i+ printf("\n"); Err mx1.adamsgaard.dk 70 i+ } else { Err mx1.adamsgaard.dk 70 i+ print_poll_line(line); Err mx1.adamsgaard.dk 70 i+ } Err mx1.adamsgaard.dk 70 i+ /* puts("
"); */ Err mx1.adamsgaard.dk 70 i+ } Err mx1.adamsgaard.dk 70 i+ free(line); Err mx1.adamsgaard.dk 70 i+ if (ferror(fp)) Err mx1.adamsgaard.dk 70 i+ err(1, "print_poll_file: getline"); Err mx1.adamsgaard.dk 70 i+ puts("
"); Err mx1.adamsgaard.dk 70 i+} Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+void Err mx1.adamsgaard.dk 70 i show_poll(const char *poll_name) Err mx1.adamsgaard.dk 70 i { Err mx1.adamsgaard.dk 70 i FILE *fd; Err mx1.adamsgaard.dk 70 it@@ -67,10 +114,9 @@ show_poll(const char *poll_name) Err mx1.adamsgaard.dk 70 i http_status(404); Err mx1.adamsgaard.dk 70 i exit(1); Err mx1.adamsgaard.dk 70 i } else { Err mx1.adamsgaard.dk 70 i+ print_poll_file(fd); Err mx1.adamsgaard.dk 70 i fclose(fd); Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- printf("

poll: '%s'

\n", poll); Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i void Err mx1.adamsgaard.dk 70 .