14 static int readfile(const char *filename, struct memblock *mem)
16 int ret, fd = open(filename, O_RDONLY);
22 fd = open(filename, O_RDONLY);
29 if (!S_ISREG(st.st_mode))
34 mem->buffer = malloc(st.st_size);
39 mem->size = st.st_size;
40 ret = read(fd, mem->buffer, mem->size);
56 void parse_file(const char *filename, GError **error)
60 if (readfile(filename, &mem) < 0) {
61 fprintf(stderr, "Failed to read '%s'.\n", filename);
63 *error = g_error_new(g_quark_from_string("subsurface"),
65 "Failed to read '%s'",
71 parse_xml_buffer(filename, mem.buffer, mem.size, error);