int romset_file_load(const char *filename) { FILE *fp; int retval, line_num; int err = 0; char *complete_path, *dir; const char *saved_path; if (filename == NULL) { log_error(romset_log, "ROM set filename is NULL!"); return -1; } fp = sysfile_open(filename, &complete_path, MODE_READ_TEXT); if (fp == NULL) { log_warning(romset_log, "Could not open file '%s' for reading (%s)!", filename, strerror(errno)); return -1; } log_message(romset_log, "Loading ROM set from file '%s'", filename); /* Prepend dir to search path */ util_fname_split(complete_path, &dir, NULL); saved_path = prepend_dir_to_path(dir); lib_free(dir); lib_free(complete_path); line_num = 0; do { retval = resources_read_item_from_file(fp); switch (retval) { case RESERR_TYPE_INVALID: log_error(romset_log, "%s: Invalid resource specification at line %d.", filename, line_num); err = 1; break; case RESERR_UNKNOWN_RESOURCE: log_warning(romset_log, "%s: Unknown resource specification at line %d.", filename, line_num); break; } line_num++; } while (retval != 0); /* Restore search path */ restore_path(saved_path); fclose(fp); return err; }
int romset_file_load(const char *filename) { FILE *fp; int retval, line_num; int err = 0; if (filename == NULL) { log_error(romset_log, "ROM set filename is NULL!"); return -1; } fp = sysfile_open(filename, NULL, MODE_READ_TEXT); if (fp == NULL) { log_warning(romset_log, "Could not open file '%s' for reading (%s)!", filename, strerror(errno)); return -1; } log_message(romset_log, "Loading ROM set from file '%s'", filename); line_num = 0; do { retval = resources_read_item_from_file(fp); if (retval == -1) { log_error(romset_log, "%s: Invalid resource specification at line %d.", filename, line_num); err = 1; } else { if (retval == -2) { log_warning(romset_log, "%s: Unknown resource specification at line %d.", filename, line_num); } } line_num++; } while (retval != 0); fclose(fp); return err; }