static struct iso_directory_record * seek_name(iso9660_VOLUME *volume, struct iso_directory_record *idr, char *name) { struct iso_directory_record *result; char name_buf[256]; iso9660_DIR *dir; dir = iso9660_opendir_node(volume, idr); if (dir == NULL) return NULL; while ((idr = iso9660_readdir(dir)) != NULL) { iso9660_name(volume, idr, name_buf); if (strcasecmp(name, name_buf) == 0) { result = idr_new(idr); iso9660_closedir(dir); return result; } } iso9660_closedir(dir); return NULL; }
static void file_close( file_desc_t *fd ) { iso9660_COMMON *common = (iso9660_COMMON *)fd; if (common->type == FILE) iso9660_close(common->file); else if (common->type == DIR) iso9660_closedir(common->dir); free(common); }