|
|
1.1 ! root 1: /* ! 2: * ! 3: * (c) 2005-2009 Laurent Vivier <[email protected]> ! 4: * ! 5: * This file has been copied from EMILE, http://emile.sf.net ! 6: * ! 7: */ ! 8: ! 9: #include "libiso9660.h" ! 10: ! 11: int iso9660_lseek(iso9660_FILE *_file, long offset, int whence) ! 12: { ! 13: iso9660_FILE *file = (iso9660_FILE*)_file; ! 14: long new_offset; ! 15: ! 16: switch(whence) ! 17: { ! 18: case SEEK_SET: ! 19: new_offset = offset; ! 20: break; ! 21: case SEEK_CUR: ! 22: new_offset = file->offset + offset; ! 23: break; ! 24: case SEEK_END: ! 25: new_offset = file->size + offset; ! 26: break; ! 27: default: ! 28: return -1; ! 29: } ! 30: ! 31: if ( (new_offset < 0) || (new_offset > file->size) ) ! 32: return -1; ! 33: ! 34: file->offset = new_offset; ! 35: ! 36: return new_offset; ! 37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.