mirror of
https://github.com/vivier/EMILE.git
synced 2024-09-08 19:54:38 +00:00
39 lines
553 B
C
39 lines
553 B
C
|
/*
|
||
|
*
|
||
|
* (c) 2005 Laurent Vivier <LaurentVivier@wanadoo.fr>
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#include <stdio.h>
|
||
|
|
||
|
#include "libiso9660.h"
|
||
|
|
||
|
extern iso9660_read_t __iso9660_device_read;
|
||
|
|
||
|
int iso9660_fseek(iso9660_FILE *file, long offset, int whence)
|
||
|
{
|
||
|
long new_offset;
|
||
|
|
||
|
switch(whence)
|
||
|
{
|
||
|
case SEEK_SET:
|
||
|
new_offset = offset;
|
||
|
break;
|
||
|
case SEEK_CUR:
|
||
|
new_offset += offset;
|
||
|
break;
|
||
|
case SEEK_END:
|
||
|
new_offset = file->size + offset;
|
||
|
break;
|
||
|
default:
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
if ( (new_offset < 0) || (new_offset > file->size) )
|
||
|
return -1;
|
||
|
|
||
|
file->offset = offset;
|
||
|
|
||
|
return 0;
|
||
|
}
|