diff options
author | June McEnroe <june@causal.agency> | 2019-02-25 21:48:05 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-02-25 21:48:05 -0500 |
commit | b2f6082dffb6a5fce557882e18183c2438ea4a3d (patch) | |
tree | ddde9f271c6cd97114fd522266e2572a407c31c1 /log.c | |
parent | Output raw to standard error if it is not a terminal (diff) | |
download | catgirl-b2f6082dffb6a5fce557882e18183c2438ea4a3d.tar.gz catgirl-b2f6082dffb6a5fce557882e18183c2438ea4a3d.zip |
Add M-l to list the log
Diffstat (limited to '')
-rw-r--r-- | log.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/log.c b/log.c index 579e99b..6cde704 100644 --- a/log.c +++ b/log.c @@ -122,7 +122,7 @@ void logFmt(struct Tag tag, const time_t *ts, const char *format, ...) { if (ferror(file)) err(EX_IOERR, "%s", tag.name); } -void logReplay(struct Tag tag) { +static void logRead(struct Tag tag, bool replay) { if (logRoot < 0) return; time_t t = time(NULL); @@ -136,10 +136,22 @@ void logReplay(struct Tag tag) { size_t cap = 0; ssize_t len; while (0 < (len = getline(&line, &cap, file))) { - if (len < 1 + StampLen + 2 + 1) continue; - line[len - 1] = '\0'; - uiFmt(tag, UICold, "\3%d%s", IRCGray, &line[1 + StampLen + 2]); + if (replay) { + if (len < 1 + StampLen + 2 + 1) continue; + line[len - 1] = '\0'; + uiFmt(tag, UICold, "\3%d%s", IRCGray, &line[1 + StampLen + 2]); + } else { + printf("%s", line); + } } if (ferror(file)) err(EX_IOERR, "%s", tag.name); free(line); } + +void logList(struct Tag tag) { + logRead(tag, false); +} + +void logReplay(struct Tag tag) { + logRead(tag, true); +} |