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 <hjemli@gmail.com>
This commit is contained in:
Lars Hjemli
2009-08-18 17:17:41 +02:00
parent 523c133e2e
commit e16f178334
4 changed files with 34 additions and 23 deletions

View File

@ -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)