+void
+define_rcdata_file (struct res_id id, const struct res_res_info *resinfo,
+ const char *filename)
+{
+ struct rcdata_item *ri;
+ FILE *e;
+ char *real_filename;
+ struct stat s;
+ unsigned char *data;
+
+ e = open_file_search (filename, FOPEN_RB, "file", &real_filename);
+
+
+ if (stat (real_filename, &s) < 0)
+ fatal (_("stat failed on file `%s': %s"), real_filename,
+ strerror (errno));
+
+ data = (unsigned char *) res_alloc (s.st_size);
+
+ get_data (e, data, s.st_size, real_filename);
+
+ fclose (e);
+ free (real_filename);
+
+ ri = (struct rcdata_item *) res_alloc (sizeof *ri);
+ ri->next = NULL;
+ ri->type = RCDATA_BUFFER;
+ ri->u.buffer.length = s.st_size;
+ ri->u.buffer.data = data;
+
+ define_rcdata (id, resinfo, ri);
+}
+