iAllow logging to a file with -l logfile. - irc - Unnamed repository; edit this file 'description' to name the repository. Err vernunftzentrum.de 70 hgit clone git://vernunftzentrum.de/irc.git URL:git://vernunftzentrum.de/irc.git vernunftzentrum.de 70 1Log /ckeen/repos/irc/log.gph vernunftzentrum.de 70 1Files /ckeen/repos/irc/files.gph vernunftzentrum.de 70 1Refs /ckeen/repos/irc/refs.gph vernunftzentrum.de 70 1README /ckeen/repos/irc/file/README.gph vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1commit 588eaca2cef25a0e061d977126c1af0ceb63a443 /ckeen/repos/irc/commit/588eaca2cef25a0e061d977126c1af0ceb63a443.gph vernunftzentrum.de 70 1parent dc7c7582abd1fac3cdbb6068999bc8126bb3848b /ckeen/repos/irc/commit/dc7c7582abd1fac3cdbb6068999bc8126bb3848b.gph vernunftzentrum.de 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org vernunftzentrum.de 70 iDate: Sun, 24 Apr 2016 15:59:19 +0200 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iAllow logging to a file with -l logfile. Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i irc.c | 26 ++++++++++++++++++++++---- Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i1 file changed, 22 insertions(+), 4 deletions(-) Err vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1diff --git a/irc.c b/irc.c /ckeen/repos/irc/file/irc.c.gph vernunftzentrum.de 70 i@@ -48,6 +48,7 @@ struct Chan { Err vernunftzentrum.de 70 i } chl[MaxChans]; Err vernunftzentrum.de 70 i int nch, ch; /* Current number of channels, and current channel. */ Err vernunftzentrum.de 70 i char outb[BufSz], *outp=outb; /* Output buffer. */ Err vernunftzentrum.de 70 i+static FILE *logfp; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i static void scmd(char *, char *, char *, char *); Err vernunftzentrum.de 70 i static void tdrawbar(void); Err vernunftzentrum.de 70 i@@ -212,7 +213,8 @@ pushf(int cn, const char *fmt, ...) Err vernunftzentrum.de 70 i size_t n, blen=c->eol-c->buf; Err vernunftzentrum.de 70 i va_list vl; Err vernunftzentrum.de 70 i time_t t; Err vernunftzentrum.de 70 i- struct tm *tm; Err vernunftzentrum.de 70 i+ char *s; Err vernunftzentrum.de 70 i+ struct tm *tm, *gmtm; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i if (blen+LineLen>=c->sz) { Err vernunftzentrum.de 70 i c->sz *= 2; Err vernunftzentrum.de 70 i@@ -223,10 +225,22 @@ pushf(int cn, const char *fmt, ...) Err vernunftzentrum.de 70 i t=time(0); Err vernunftzentrum.de 70 i if (!(tm=localtime(&t))) panic("Localtime failed."); Err vernunftzentrum.de 70 i n=strftime(c->eol, LineLen, DATEFMT, tm); Err vernunftzentrum.de 70 i+ if (!(gmtm=gmtime(&t))) panic("Gmtime failed."); Err vernunftzentrum.de 70 i c->eol[n++] = ' '; Err vernunftzentrum.de 70 i va_start(vl, fmt); Err vernunftzentrum.de 70 i- n+=vsnprintf(c->eol+n, LineLen-n-1, fmt, vl); Err vernunftzentrum.de 70 i+ s = c->eol + n; Err vernunftzentrum.de 70 i+ n+=vsnprintf(s, LineLen-n-1, fmt, vl); Err vernunftzentrum.de 70 i va_end(vl); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ if (logfp) { Err vernunftzentrum.de 70 i+ fprintf(logfp, "%-12.12s\t%04d-%02d-%02dT%02d:%02d:%02dZ\t%s\n", Err vernunftzentrum.de 70 i+ c->name, Err vernunftzentrum.de 70 i+ gmtm->tm_year + 1900, gmtm->tm_mon + 1, gmtm->tm_mday, Err vernunftzentrum.de 70 i+ gmtm->tm_hour, gmtm->tm_min, gmtm->tm_sec, Err vernunftzentrum.de 70 i+ s); Err vernunftzentrum.de 70 i+ fflush(logfp); Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i strcat(c->eol, "\n"); Err vernunftzentrum.de 70 i if (n>=LineLen-1) Err vernunftzentrum.de 70 i c->eol+=LineLen-1; Err vernunftzentrum.de 70 i@@ -569,13 +583,17 @@ main(int argc, char *argv[]) Err vernunftzentrum.de 70 i unsigned short port = PORT; Err vernunftzentrum.de 70 i int o; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i- while ((o=getopt(argc, argv, "hn:u:s:p:"))>=0) Err vernunftzentrum.de 70 i+ while ((o=getopt(argc, argv, "hn:u:s:p:l:"))>=0) Err vernunftzentrum.de 70 i switch (o) { Err vernunftzentrum.de 70 i case 'h': Err vernunftzentrum.de 70 i case '?': Err vernunftzentrum.de 70 i usage: Err vernunftzentrum.de 70 i- fputs("Usage: irc [-n NICK] [-u USER] [-s SERVER] [-p PORT] [-h]\n", stderr); Err vernunftzentrum.de 70 i+ fputs("usage: irc [-n NICK] [-u USER] [-s SERVER] [-p PORT] [-l LOGFILE ] [-h]\n", stderr); Err vernunftzentrum.de 70 i exit(0); Err vernunftzentrum.de 70 i+ case 'l': Err vernunftzentrum.de 70 i+ if (!(logfp = fopen(optarg, "a"))) Err vernunftzentrum.de 70 i+ panic("fopen: logfile"); Err vernunftzentrum.de 70 i+ break; Err vernunftzentrum.de 70 i case 'n': Err vernunftzentrum.de 70 i if (strlen(optarg)>=sizeof nick) goto usage; Err vernunftzentrum.de 70 i strcpy(nick, optarg); Err vernunftzentrum.de 70 .