From e16f1783346a090e4ea1194dcaae7f03e813f6a2 Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Tue, 18 Aug 2009 17:17:41 +0200 Subject: Add and use a common readfile() function This function is used to read the full content of a textfile into a newly allocated buffer (with zerotermination). It replaces the earlier readfile() in scan-tree.c (which was rather error-prone[1]), and is reused by read_agefile() in ui-repolist.c. 1: No checks for EINTR and EAGAIN, fixed-size buffer Signed-off-by: Lars Hjemli --- ui-repolist.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'ui-repolist.c') diff --git a/ui-repolist.c b/ui-repolist.c index 6d2f93f..7c7aa9b 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -18,19 +18,20 @@ time_t read_agefile(char *path) { - FILE *f; - static char buf[64], buf2[64]; + time_t result; + size_t size; + char *buf; + static char buf2[64]; - if (!(f = fopen(path, "r"))) + if (readfile(path, &buf, &size)) return -1; - buf[0] = 0; - if (fgets(buf, sizeof(buf), f) == NULL) - return -1; - fclose(f); + if (parse_date(buf, buf2, sizeof(buf2))) - return strtoul(buf2, NULL, 10); + result = strtoul(buf2, NULL, 10); else - return 0; + result = 0; + free(buf); + return result; } static int get_repo_modtime(const struct cgit_repo *repo, time_t *mtime) -- cgit v1.2.3-24-g4f1b