about summary refs log tree commit diff
path: root/log.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--log.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/log.c b/log.c
index af8f66e..9cd6557 100644
--- a/log.c
+++ b/log.c
@@ -80,11 +80,11 @@ static FILE *logFile(struct Tag tag, const struct tm *time) {
 	char path[sizeof("YYYY-MM-DD.log")];
 	strftime(path, sizeof(path), "%F.log", time);
 	int fd = openat(
-		log->dir, path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC, 0600
+		log->dir, path, O_RDWR | O_APPEND | O_CREAT | O_CLOEXEC, 0600
 	);
 	if (fd < 0) err(EX_CANTCREAT, "%s/%s", tag.name, path);
 
-	log->file = fdopen(fd, "a");
+	log->file = fdopen(fd, "a+");
 	if (!log->file) err(EX_CANTCREAT, "%s/%s", tag.name, path);
 	setlinebuf(log->file);
 
@@ -119,3 +119,21 @@ void logFmt(struct Tag tag, const time_t *ts, const char *format, ...) {
 	fprintf(file, "\n");
 	if (ferror(file)) err(EX_IOERR, "%s", tag.name);
 }
+
+void logReplay(struct Tag tag) {
+	if (logRoot < 0) return;
+
+	time_t t = time(NULL);
+	struct tm *time = localtime(&t);
+	if (!time) err(EX_SOFTWARE, "localtime");
+
+	FILE *file = logFile(tag, time);
+	rewind(file);
+
+	size_t len;
+	char *line;
+	while (NULL != (line = fgetln(file, &len))) {
+		uiFmt(tag, UICold, "\3%d%.*s", IRCGray, (int)(len - 1), line);
+	}
+	if (ferror(file)) err(EX_IOERR, "%s", tag.name);
+}
> 2009-08-10Cleanup handling of environment variablesLars Hjemli 2009-08-09Add some example filter scriptsLars Hjemli 2009-08-09Add 'about-filter' and 'repo.about-filter' optionsLars Hjemli 2009-08-09ui-summary: enable arbitrary paths below repo.readmeLars Hjemli 2009-08-09cgit.c: allow repo.*-filter options to unset the current defaultLars Hjemli 2009-08-09Add support for repo.commit-filter and repo.source-filterLars Hjemli 2009-08-08Expose file extension in tree lists as class to allow nicer tree stylingMartin Szulecki 2009-08-08Introduce noplainemail option to hide email adresses from spambotsMartin Szulecki 2009-07-31ui-commit: add support for 'commit-filter' optionLars Hjemli 2009-07-31ui-tree: add support for source-filter optionLars Hjemli 2009-07-31ui-snapshot: use cgit_{open|close}_filter() to execute compressorsLars Hjemli 2009-07-31Add generic filter/plugin infrastructureLars Hjemli 2009-07-25Add support for mime type registration and lookupLars Hjemli 2009-07-25cgit.h: keep config flags sortedLars Hjemli 2009-07-25cgitrc.5.txt: document 'embedded' and 'noheader'Lars Hjemli 2009-07-25Add support for 'noheader' optionLars Hjemli 2009-07-25cgitrc.5.txt: document 'head-include'Lars Hjemli 2009-07-25ui-blob: return 'application/octet-stream' for binary blobsLars Hjemli 2009-07-25ui-plain: Return 'application/octet-stream' for binary files.Remko Tronçon 2009-06-11use cgit_httpscheme() for atom feedDiego Ongaro 2009-06-11add cgit_httpscheme() -> http:// or https://Diego Ongaro 2009-06-07Return http statuscode 404 on unknown branchLars Hjemli 2009-06-07Add head-include configuration option.Mark Lodato 2009-03-15CGIT 0.8.2.1Lars Hjemli 2009-03-15Fix doc-related glitches in Makefile and .gitignoreLars Hjemli 2009-03-15ui-snapshot: avoid segfault when no filename is specifiedLars Hjemli 2009-03-15fix segfault when displaying empty blobsEric Wong 2009-02-19Add support for HEAD requestsLars Hjemli 2009-02-19Add support for ETag in 'plain' viewLars Hjemli 2009-02-12ui-tree: escape ascii-text properly in hexdump viewLars Hjemli 2009-02-12Makefile: add doc-related targetsLars Hjemli