diff options
| -rw-r--r-- | log.c | 10 | 
1 files changed, 7 insertions, 3 deletions
@@ -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);  }  | 
