summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--log.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/log.c b/log.c
index 9cd6557..150b629 100644
--- a/log.c
+++ b/log.c
@@ -91,6 +91,8 @@ static FILE *logFile(struct Tag tag, const struct tm *time) {
return log->file;
}
+enum { StampSize = sizeof("YYYY-MM-DDThh:mm:ss+hhmm") };
+
void logFmt(struct Tag tag, const time_t *ts, const char *format, ...) {
if (logRoot < 0) return;
@@ -105,8 +107,8 @@ void logFmt(struct Tag tag, const time_t *ts, const char *format, ...) {
FILE *file = logFile(tag, time);
- char stamp[sizeof("YYYY-MM-DDThh:mm:ss+hhmm")];
- strftime(stamp, sizeof(stamp), "%FT%T%z", time);
+ char stamp[StampSize];
+ strftime(stamp, StampSize, "%FT%T%z", time);
fprintf(file, "[%s] ", stamp);
if (ferror(file)) err(EX_IOERR, "%s", tag.name);
@@ -133,7 +135,9 @@ void logReplay(struct Tag tag) {
size_t len;
char *line;
while (NULL != (line = fgetln(file, &len))) {
- uiFmt(tag, UICold, "\3%d%.*s", IRCGray, (int)(len - 1), line);
+ line[len - 1] = '\0';
+ if (len > 2 + StampSize) line = &line[2 + StampSize];
+ uiFmt(tag, UICold, "\3%d%s", IRCGray, line);
}
if (ferror(file)) err(EX_IOERR, "%s", tag.name);
}