blob: 77c271f0f5f28403cec19fdb0afc718869f67396 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/*
*
* (c) 2005-2009 Laurent Vivier <Laurent@vivier.eu>
*
* This file has been copied from EMILE, http://emile.sf.net
*
*/
#include "libiso9660.h"
iso9660_FILE* iso9660_open(iso9660_VOLUME *volume, const char* pathname)
{
struct iso_directory_record *root;
struct iso_directory_record *idr;
iso9660_FILE *file;
root = iso9660_get_root_node(volume);
if (root == NULL)
return NULL;
idr = iso9660_get_node(volume, root, pathname);
if (idr == NULL)
return NULL;
file = (iso9660_FILE*)malloc(sizeof(iso9660_FILE));
if (file == NULL)
return NULL;
file->base = isonum_733((char *)idr->extent);
file->size = isonum_733((char *)idr->size);
file->offset = 0;
file->current = -1;
file->volume = volume;
file->path = strdup(pathname);
free(idr);
return file;
}
|